新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

TypeScript 的 extends 条件类型

发布时间:2023-09-22 08:12:52

TypeScript 的 extends 条件类型

在TypeScript中,extends关键字不但可以用于类的继承,还可以用于条件类型的定义。
条件类型是一种在类型系统中进行条件判断的机制。通过使用extends关键字,我们可以根据给定的类型条件来肯定终究的类型。条件类型的语法以下:
```
T extends U ? X : Y
```
其中,T是待判断的类型,U是用于判断的类型,X和Y是根据判断结果分别返回的类型。
下面是一个简单的示例:
```typescript
type TypeName =
T extends string ? "string" :
T extends number ? "number" :
T extends boolean ? "boolean" :
T extends undefined ? "undefined" :
T extends Function ? "function" :
"object";
type T1 = TypeName; // "string"
type T2 = TypeName<"hello">; // "string"
type T3 = TypeName<123>; // "number"
type T4 = TypeName; // "boolean"
type T5 = TypeName; // "undefined"
type T6 = TypeName<() => void>; // "function"
type T7 = TypeName; // "object"
type T8 = TypeName; // "object"
```
在上面的示例中,我们定义了一个条件类型TypeName,它根据给定的类型T判断其类型名称,并返回相应的字符串类型。根据类型的区分,返回的结果会分别是"string"、"number"、"boolean"、"undefined"、"function"和"object"。
通过使用extends关键字,我们可以根据区分的类型条件来肯定终究的返回类型。如果T是string类型,那末终究的返回类型就是"string";如果T是number类型,那末终究的返回类型就是"number",以此类推。对没法匹配的类型,终究的返回类型就是"object"。
需要注意的是,extends关键字在条件类型中的使用类似于JavaScript中的三元条件运算符。