TypeScript 的 extends 条件类型

   2025-02-21 7990
核心提示:在TypeScript中,extends关键字不仅可以用于类的继承,还可以用于条件类型的定义。条件类型是一种在类型系统中进行条件判断的机

在TypeScript中,extends关键字不仅可以用于类的继承,还可以用于条件类型的定义。

条件类型是一种在类型系统中进行条件判断的机制。通过使用extends关键字,我们可以根据给定的类型条件来确定最终的类型。条件类型的语法如下:

T extends U ? X : Y

其中,T是待判断的类型,U是用于判断的类型,X和Y是根据判断结果分别返回的类型。

下面是一个简单的示例:

type TypeName<T> =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>;  // "string"type T2 = TypeName<"hello">;  // "string"type T3 = TypeName<123>;  // "number"type T4 = TypeName<true>;  // "boolean"type T5 = TypeName<undefined>;  // "undefined"type T6 = TypeName<() => void>;  // "function"type T7 = TypeName<object>;  // "object"type T8 = TypeName<number[]>;  // "object"

在上面的示例中,我们定义了一个条件类型TypeName,它根据给定的类型T判断其类型名称,并返回相应的字符串类型。根据类型的不同,返回的结果会分别是"string"、“number”、“boolean”、“undefined”、“function"和"object”。

通过使用extends关键字,我们可以根据不同的类型条件来确定最终的返回类型。如果T是string类型,那么最终的返回类型就是"string";如果T是number类型,那么最终的返回类型就是"number",以此类推。对于无法匹配的类型,最终的返回类型就是"object"。

需要注意的是,extends关键字在条件类型中的使用类似于JavaScript中的三元条件运算符。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言