【问题标题】:How to add typescript type to ES6 arrow function?如何将打字稿类型添加到 ES6 箭头函数?
【发布时间】:2018-10-08 07:36:47
【问题描述】:

现在,我需要将 javascript 代码更新为 typescript。

但我发现了一个问题。

之前,我在之前的项目中使用了很多箭头函数。现在,我需要为它们中的许多添加类型定义,例如:

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

通过使用许多 npm 包,包提供如下函数类型:

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

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

也许你会这样说:

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

// then use a

但我根本不需要定义 a。

那么,你有什么方法可以在不定义其他变量的情况下使用带有 es6 箭头函数的函数定义?

【问题讨论】:

  • 有趣的是,您在提到转换为 typescript 时使用了“更新”一词。
  • @evolutionxbox 也许我的意思是重写。你知道我的问题吗?
  • @TomIsion 我不太清楚你在问什么?你有一个回调类型AAACallback,你给它分配了一个箭头函数。问题是什么?你想声明a 的类型而不需要额外的类型?
  • @TitianCernicova-Dragomir AAACallback 是打字稿函数类型。我想用它来定义我的箭头函数。

标签: javascript typescript ecmascript-6 arrow-functions


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-08-26
    • 2022-07-27
    • 1970-01-01
    • 2017-01-04
    • 2018-04-23
    • 2015-12-12
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    相关资源
    最近更新 更多