为了"complexGenericTypeAlias"这个函数的返回值,
不然按你直接这么定义,返回值不方便写
type AAA = T
type BBB = T[]
type CCC = Promise
/** A complex generic type. */
export type ComplexGenericTypeAlias =
| T
| T[]
| Promise
| Promise
| Record>;
function complexGenericTypeAlias(value: T): ComplexGenericTypeAlias {
if (value === 'array') {
return [value]
}
if (value === 'promise') {
return Promise.resolve(value)
}
if (value === 'promiseArray') {
return Promise.resolve([value])
}
if (value === 'promiseRecord') {
return { key: Promise.resolve(value) }
}
return value
}