如何将打字稿类型添加到ES6箭头功能?

时间:2018-10-08 07:36:48

标签: javascript typescript ecmascript-6 arrow-functions

现在,我需要将JavaScript代码更新为打字稿。

但是我发现了一个问题。

之前,我在before项目中使用了很多箭头功能。现在,我需要为其中的许多添加类型定义,如下所示:

(a: number): string => { return `${a}` }

通过使用许多npm软件包,该软件包提供的功能类型如下:

export declare type AAACallback = (a: number) => string

我想在我的es6箭头函数中使用函数类型。

也许您这样说:

let a: AAACallback = a => { return `${a}` }

// then use a

但是我根本不需要定义一个。

那么,您是否可以在不定义其他变量的情况下将函数定义与es6箭头函数一起使用?

1 个答案:

答案 0 :(得分:1)

TypeScript没有内置语法来注释箭头函数(或任何其他表达式)具有给定的总体类型,而无需声明单独的变量。 (如果使用类型断言,由于类型断言既允许向上转换又可以向下转换,则可能无意中向下转换了表达式。)您可以做的一件事是使用标识函数:

function id<T>(arg: T) { return arg; }

element.addEventListener('click', id<AAACallback>(event => {}), false)