Javascript TypeScript中的Arrow函数与继承

Javascript TypeScript中的Arrow函数与继承,javascript,typescript,ecmascript-6,Javascript,Typescript,Ecmascript 6,我正试图用Barasat Ali Syed的深潜来学习打字 我在Arrow函数和继承中遇到了下面的代码。请帮助我理解这行“(b:string):string”中第二个:string的意义 是一个匿名箭头函数。第二个:string是此函数返回类型的定义 在Adder类中,您正在定义一个属性add,并分配一个匿名函数,该匿名函数期望一个字符串参数b参数,并返回一个string值。这是匿名函数的返回类型。@zerkms:是因为TypeScript,我们必须指定返回类型,它是强制的吗?我不记得在java

我正试图用Barasat Ali Syed的深潜来学习打字

我在Arrow函数和继承中遇到了下面的代码。请帮助我理解这行“(b:string):string”中第二个:string的意义

是一个匿名箭头函数。第二个
:string
是此函数返回类型的定义


Adder
类中,您正在定义一个属性
add
,并分配一个匿名函数,该匿名函数期望一个字符串参数
b
参数,并返回一个
string
值。

这是匿名函数的返回类型。@zerkms:是因为TypeScript,我们必须指定返回类型,它是强制的吗?我不记得在javascript.JS中指定返回类型是完全非类型化的。在TS中,键入是可选的。@zerkms:如果我使用(b:string)而不是(b:string):string,这是否完全正常?在这种情况下,TS将根据您的代码自动推断类型。在本例中,它将看到您返回的编号+字符串属于
字符串类型。谢谢您的回答。
class Adder {
    constructor(public a: number) {}
    // This function is now safe to pass around
    add = (b: string): string => {
        return this.a + b;
    }
}
(b: string): string => { ... }