关键词:extends 类型继承、extends 条件类型定义
在 TypeScript 中,extends
关键字不仅仅用于类之间的继承关系,还可以用于条件类型的定义。
条件类型是一种在类型系统中根据条件进行推断的方式。通过使用 extends
关键字,可以根据给定的条件选择不同的类型。
以下是一个使用 extends
条件语句定义条件类型的示例:
type TypeName<T> =
T extends string ? "string" :
T extends number ? "number" :
T extends boolean ? "boolean" :
"unknown";
let type1: TypeName<string>; // 类型为 "string"
let type2: TypeName<number>; // 类型为 "number"
let type3: TypeName<boolean>; // 类型为 "boolean"
let type4: TypeName<object>; // 类型为 "unknown"
在上面的例子中,我们定义了一个条件类型 TypeName
,它根据给定的泛型类型 T
来选择不同的类型。如果 T
是 string
类型,那么返回值类型为 "string"
;如果 T
是 number
类型,那么返回值类型为 "number"
;如果 T
是 boolean
类型,那么返回值类型为 "boolean"
;否则返回值类型为 "unknown"
。
通过上述定义,我们可以根据不同的类型获取它们的类型名称。例如,type1
的类型为 "string"
,type2
的类型为 "number"
,依此类推。
注意,条件类型的定义中可以使用嵌套的 extends
关键字,以支持更复杂的条件判断。