- Published on
typescript extends 后面跟等号语法
- Authors
- Name
- JiGu
- @crypto20x
interface Match<Params extends { [K in keyof Params]?: string } = {}> {
params: Params;
isExact: boolean;
path: string;
url: string;
}
extends后面的对象是什么意思
- 这个后面的类型是一个自带约束的泛型, 意思是这个泛型满足对象的所有 属性都是string
等号后面的空对象又是什么意思
- 对于泛型 Params类型 的一个默认值 属性为空的类型, 意思就是你可以在使用整个Match的时候不用定义泛型Params,而默认为 params: 为空对象类型
// 有默认泛型时,可以这样写
let mat: Match;
// 没有默认时,不可以上面那么写,需要下面这样
let mat: Match<{a: string}>