- 泛型约束
<T extends object > 泛型参数 T 必须是一个对象类型
< T extends keyof any > 允许 T 是任何字符串字面量类型
示例一:联合类型
- 泛型参数默认值
<T = {}>
// 定义时设置了默认值,使用时可以不传递泛型参数
type Chainable<T extends object = {}> = {
option<K extends string, V>(key: K, value: V): Chainable<T & {[P in K]: V}>,
get(): T
}
declare const config: Chainable
- 泛型约束与默认值结合:
<T extends object = {}>