你的需求是通过输入参数的类型来决定返回值类型,这个需求是无法实现的,因为ts的类型检查都是静态类型,只作用于ts编译阶段。
通过给定泛型T来指定返回值类型是没有意义的,你的函数功能是进行字符串处理,那么返回的类型应该是固定的,或者跟随输入的参数类型(string或any[])
你可以换个思路,我们应该在调用的时候尽可能知道传入参数的类型,这样就可以使用T来标记参数与返回类型,如:
function parse<T>(list: T): T {
// do something
}
如果说不能确定传入的是字符串还是数组,那就加入一些逻辑进行处理,将返回结果统一成string或者any[]
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…