Typescript 函数类型中的推理

Typescript 函数类型中的推理,typescript,Typescript,在正式的typescript文档中,有一个关于函数参数类型推断的技巧: 当我们仅仅定义函数的类型/接口时,是否可以做同样的事情 原始示例其工作原理(来自官方文档): 函数firstElement(arr:T[]):T{ 返回arr[0]; } 如果我想单独定义firstElement函数的类型,我需要使用泛型: type FirstElementFn=(arr:T[])=>T; 在此之后,为了使其像原始示例中那样工作,我需要在声明函数时传递泛型类型: const firstElement:

在正式的typescript文档中,有一个关于函数参数类型推断的技巧:

当我们仅仅定义函数的类型/接口时,是否可以做同样的事情

原始示例其工作原理(来自官方文档):

函数firstElement(arr:T[]):T{
返回arr[0];
}
如果我想单独定义firstElement函数的类型,我需要使用泛型:

type FirstElementFn=(arr:T[])=>T;
在此之后,为了使其像原始示例中那样工作,我需要在声明函数时传递泛型类型:

const firstElement:FirstElementFn=(arr)=>arr[0]
问题是:是否可以在函数本身之前定义函数类型,并从声明中推断参数类型,如原始示例中所示?

更新:


这一个实际上和原来的一样:

type FirstElementFn=(arg:T[])=>T;
常量firstElement:FirstElementFn=(arg)=>arg[0];
但有可能强制执行某些类型吗?像这样:

//这不起作用
常量firstStringElement:FirstElementFn=(arg:string[])=>arg[0];

这一款实际上与原款一样:

type FirstElementFn=(arg:T[])=>T;
常量firstElement:FirstElementFn=(arg)=>arg[0];

与其更新问题以包含答案,不如将解决方案作为您自己问题的答案发布。