将泛型函数分配给Typescript中的委托

时间:2016-11-11 13:07:15

标签: generics typescript delegates

我无法在Typescript(1.8)中编译这个简单的代码片段

function test<T>(a: string, input: T): T {
    return input
} 

const xyz: (a: string, b: number) => number = test<number>

我有一个接受委托的函数,但是将泛型函数转换为该委托格式需要我执行这个额外的步骤:

const xyz: (a: string, b: number) => number = (a,b) => test<number>(a,b)

......这对我来说似乎并不理想。任何想法为什么这不起作用,或者是否有另一种语法来实现相同的目标?

1 个答案:

答案 0 :(得分:1)

根本不需要通用约束,这样做:

const xyz: (a: string, b: number) => number = test;

code in playground

编译器根据您为变量明确定义的类型将通用约束推断为数字 另一种方法是:

const xyz = test as (a: string, b: number) => number;

code in playground