【发布时间】:2021-01-22 18:45:42
【问题描述】:
代码解释了我的问题:
type A = {
a: number,
} | null
// Extract as defined in lib.es5.d.ts
type Extract<T, U> = T extends U ? T : never;
type CustomExtract = A extends null ? A : never;
type Result1 = Extract<A, null> // null
type Result2 = CustomExtract; // never
Extract 和 CustomExtract 是相同的代码,区别在于 Extract 是泛型类型。
另外,作为相关示例,string | null 不扩展 null。
那么,在这个主题中,类型是如何真正发挥作用的呢?我可以想象它可能会为每种联合类型运行泛型类型,然后合并所有结果,但我想要真正的技术定义和它的工作。
【问题讨论】:
标签: typescript typescript-generics