首页 > 解决方案 > TypeScript - 输入函数的最佳方法?

问题描述

我正在学习 TypeScript,我有一个关于注释函数类型的问题。

看这个简单的例子:

export const add = (num1: number, num2: number):number => {
  return num1 + num2;
};

这对我来说感觉很好。参数有一个类型,函数的返回类型也有注释。

现在考虑一下,这也是有效的语法:

export const add2:(num1: number, num2: number) => number = (num1, num2) => {
  return num1 + num2;
};

我们正在输入变量add2本身。当然。我的 linter 对其中任何一个都缺少返回类型而闭口不谈。

我什至可以两者都做:

export const add3:(num1: number, num2: number) => number = (num1: number, num2: number):number => {
  return num1 + num2;
};

我的问题是 - 在这里做方法 1、2 或 3 有什么优点或缺点吗?他们之间有更惯用的风格吗?

标签: typescript

解决方案


当您声明新变量并在同一语句中分配它时,无需显式指定类型 - 它将自动假定。因此,对于您问题中的用例,第一个选项将是最佳选择。

如果您需要声明一个变量并稍后为其分配一个值(函数) - 更简洁的方法是使用接口。这些方面的东西:

interface AddFunc {
  (num1: number, num2:number): number;
}

let add: AddFunc;
add = (a: number, b: number): number => a + b;
add(1, 2);

推荐阅读