面试题答案
一键面试- 定义
path
字段类型:- 首先创建一个类型别名来定义
path
可能的值。假设我们有固定的路由路径,我们可以使用联合类型。
type RoutePath = '/home' | '/about';
- 然后定义路由配置对象的类型,使用接口来约束每个路由对象的结构。
import type { Component } from'solid-js'; interface Route { path: RoutePath; component: Component; }
- 这样,
routes
数组的类型就可以定义为Route[]
。
const routes: Route[] = [ { path: '/home', component: HomeComponent }, { path: '/about', component: AboutComponent } ];
- 首先创建一个类型别名来定义
- 在 Solid.js 路由跳转时进行类型检查:
- Solid.js 中进行路由跳转通常会使用
router.navigate
等方法。假设router.navigate
接收一个路径参数,我们可以定义一个类型安全的跳转函数。
import { navigate } from'solid-app-router'; function safeNavigate(path: RoutePath) { navigate(path); }
- 在组件中使用时,就可以利用这个函数确保传入的路径是类型安全的。
import { createComponent } from'solid-js'; const MyComponent = createComponent(() => { return ( <div> <button onClick={() => safeNavigate('/home')}>Go to Home</button> <button onClick={() => safeNavigate('/about')}>Go to About</button> </div> ); });
- 这样,在编译阶段 TypeScript 就能检查传入
safeNavigate
的路径是否在RoutePath
定义的范围内,保证了类型安全。
- Solid.js 中进行路由跳转通常会使用