类型工具
Awaited<Type>
type A = Awaited<Promise<string>>; // string
type B = Awaited<Promise<Promise<number>> // numbertype C = Awaited<number | Promise<boolean>>; // number| booleanConstructorParameters<Type>
// [x: string, y: number]
type T1 = ConstructorParameters<new (x: string, y: number) => object>;
// [x?: string, y?: number]
type T2 = ConstructorParameters<new (x?: string, y?: number) => object>;// [message?: string]
type T1 = ConstructorParameters<ErrorConstructor>;
// string[]
type T2 = ConstructorParameters<FunctionConstructor>;
// [pattern: string|RegExp, flags?: string]
type T3 = ConstructorParameters<RegExpConstructor>;