🎉前言
这是学习 TypeScript
的基础进阶的第三章节,我将会把我学习到的知识总结起来供大家参考。
之前已经学习了泛型的基本用法,接下来我们拓展一下对于泛型的其他知识点。
👹 泛型条件类型
在 TypeScript 2.8 中引入了条件类型,使得我们可以根据某些条件得到不同的类型,这里所说的条件是类型兼容性约束。尽管以上代码中使用了 extends
关键字,也不一定要强制满足继承关系,而是检查是否满足结构兼容性。
条件类型有点类似三元表达式,根据真假从而在两种类型中选择其一:
T extends U ? X : Y
上述代码的意思是:若 T
能够赋值给 U
,那么类型是 X
,否则为 Y
。
👺 泛型工具类型
🙈 typeof
在 TypeScript
中,typeof
操作符可以用来获取一个变量声明或对象的类型。注意跟原生的 api
区分一下。
interface Animal {
name: string;
age: number;
}
const dog: Animal = { name: '阿黄', age: 4 };
type Dog = typeof dog; // -> Dog
const dogtype = typeof dog; // obje