为什么TypeScript允许我省略函数的返回类型?

时间:2017-07-23 01:57:47

标签: typescript

我在tsconfig中将noImplicitAny设置为true。所以当我允许我省略函数返回类型时,我感到很惊讶。我有一个看起来像这样的getter函数:

get name() {
    return `${this.valueName} of ${this.suitName}`;
}

Q1:name()getter的返回类型是什么?有吗?

Q2:如果可以的话,为什么我允许将noImplicitAny设置为true?

1 个答案:

答案 0 :(得分:2)

noImplictAny configuration强制您定义TypeScript无法推断的类型。例如:

Traceback (most recent call last):
File "I:\bls.py", line 78, in <module>    
getData()
File "I:\bls.py", line 68, in getData
List1.insert(j,i)
File "C:\Program Files\Python\lib\tkinter\__init__.py", line 2645, in insert
self.tk.call((self._w, 'insert', index) + elements)
_tkinter.TclError: invalid command name ".51825488"

此处TypeScript无法确定哪个类型应为let x; function f(a) { x = a; } a。在这里,编译器会警告您隐式使用任何内容。

在此代码中:

x

TypeScript可以在此推断您返回get name() { return `${this.valueName} of ${this.suitName}`; }

请注意,您不必定义每个参数或变量。在以下情况下,这将是迂腐的:

string