//想通过泛型自定义返回参数,例如<number> 返回参数为number
//问题: 我要怎么操作return 是T类型不会报错
function demo<T>(arr: string): T {
return
}
console.log(demo<number>('123'));
//想通过泛型自定义返回参数,例如<number> 返回参数为number
//问题: 我要怎么操作return 是T类型不会报错
function demo<T>(arr: string): T {
return
}
console.log(demo<number>('123'));
一般在不知道 T 的类型的情况下,内部可能也不知道怎么去处理 s,一个常用的做法,是传入一个转换函数,由这个函数来返回类型为 T 的结果
Playground
或者如果是需要根据参数去返回对应的类型,则最好是写成重载函数
Playground
当然如果非要直接在内部去返回 T 的话,可以通过 类型断言 来实现的,具体就是用 as 关键字将某个变量强行断言成 T 然后返回。
但非常不推荐这样写,因为有可能造成 T 的类型和真实返回的类型不一致,但类型系统中却捕捉不到这个问题,导致后续使用错误的类型而无法得到预期的结果。