我在tsconfig中将noImplicitAny设置为true。所以当我允许我省略函数返回类型时,我感到很惊讶。我有一个看起来像这样的getter函数:
get name() {
return `${this.valueName} of ${this.suitName}`;
}
Q1:name()getter的返回类型是什么?有吗?
Q2:如果可以的话,为什么我允许将noImplicitAny设置为true?
答案 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