如果我具有以下基本功能,typescript
可以自动推断返回类型。
function myFunction(x: number, y: number) {
return x * y;
}
如果typescript
由于其他调用正在泄漏any
而无法推断出返回类型,因此无法做出正确的推断,那么声明返回类型是否有用?
function myFunction(x: number, y: number) {
return x * y || callThatReturnsAny();
}
在这种情况下,如果我知道callThatReturnsAny()
返回number
function myFunction(x: number, y: number): number {
return x * y || callThatReturnsAny();
}
尽管最好的解决方案只是键入callThatReturnsAny()
,以便typescript
进行推断?但是在那种情况下,什么时候您真的应该使用显式的返回类型?
答案 0 :(得分:1)
我打开noImplicitAny
并避免在几乎所有情况(函数除外)中添加类型注释。为什么?因为我不想在以下情况下意外返回联合类型:
例如,如果我开始的时候,我的日子会有所不同:
function example(a: number, b: number) {
vs
function example(a: number, b: number): number {
这是接下来发生的事情...
function example(a: number, b: number) {
if (a > 5) {
return 5;
}
if (b > a) {
return 'b';
}
}
我的返回类型现在为number | string | undefined
。
如果我使用返回类型注释,则会获得其他帮助*。
它可以帮助您返回正确的类型:
在严格模式下,它确保您每次都返回一些东西。
* 如果您需要其他帮助,还可以打开所有严格的条件。