Published on

typescript extends 后面跟等号语法

Authors
interface Match<Params extends { [K in keyof Params]?: string } = {}> {
  params: Params;
  isExact: boolean;
  path: string;
  url: string;
}

extends后面的对象是什么意思

  1. 这个后面的类型是一个自带约束的泛型, 意思是这个泛型满足对象的所有 属性都是string

等号后面的空对象又是什么意思

  1. 对于泛型 Params类型 的一个默认值 属性为空的类型, 意思就是你可以在使用整个Match的时候不用定义泛型Params,而默认为 params: 为空对象类型
// 有默认泛型时,可以这样写
let mat: Match;
// 没有默认时,不可以上面那么写,需要下面这样
let mat: Match<{a: string}>