有看到过定义比较复杂的泛型类型:
/** A complex generic type. */
export type ComplexGenericTypeAlias<T> =
| T
| T[]
| Promise<T>
| Promise<T[]>
| Record<string, Promise<T>>;
请问下,为何需要定义这么多或的Type呢?
为何不直接定义:
type AAA<T> = T
type BBB<T> = T[]
type CCC<T> = Promise<T>
...
为何需要把这些风马牛不相及的类型(T, Promise, Record
)组在一起?
为了
complexGenericTypeAlias
这个函数的返回值,不然按你直接这么定义,返回值不方便写