推荐答案
Exclude
Exclude<T, U>
用于从类型 T
中排除那些可以赋值给类型 U
的类型。例如:
type T = Exclude<"a" | "b" | "c", "a">; // "b" | "c"
Extract
Extract<T, U>
用于从类型 T
中提取那些可以赋值给类型 U
的类型。例如:
type T = Extract<"a" | "b" | "c", "a" | "f">; // "a"
NonNullable
NonNullable<T>
用于从类型 T
中排除 null
和 undefined
。例如:
type T = NonNullable<string | number | undefined>; // string | number
ReturnType
ReturnType<T>
用于获取函数类型 T
的返回类型。例如:
type T = ReturnType<() => string>; // string
InstanceType
InstanceType<T>
用于获取构造函数类型 T
的实例类型。例如:
class C { x = 0; y = 0; } type T = InstanceType<typeof C>; // C
本题详细解读
Exclude
Exclude<T, U>
是 TypeScript 中的一个内置条件类型,它通过从类型 T
中排除那些可以赋值给类型 U
的类型来生成新的类型。这在处理联合类型时非常有用,特别是当你需要从一组类型中排除某些特定类型时。
Extract
Extract<T, U>
是另一个内置条件类型,它与 Exclude
相反,用于从类型 T
中提取那些可以赋值给类型 U
的类型。这在需要从一组类型中筛选出特定类型时非常有用。
NonNullable
NonNullable<T>
是一个内置条件类型,用于从类型 T
中排除 null
和 undefined
。这在处理可能包含 null
或 undefined
的类型时非常有用,特别是在你需要确保类型不包含这些值时。
ReturnType
ReturnType<T>
是一个内置条件类型,用于获取函数类型 T
的返回类型。这在需要获取函数的返回类型时非常有用,特别是在处理高阶函数或泛型函数时。
InstanceType
InstanceType<T>
是一个内置条件类型,用于获取构造函数类型 T
的实例类型。这在需要获取类的实例类型时非常有用,特别是在处理类工厂或泛型类时。