![](/img/trans.png)
[英]Why can't Typescript infer function argument types for optional arguments?
[英]Why TypeScript does not infer types of input arguments
我在 TypeScript 中有这个代码示例:
function twice(x:number) {
return x*2;
}
function calltwice(y) {
return twice(y);
}
它在节点中编译和执行给出 NaN。
我想知道为什么 y 类型是 any ? 我希望它被推断为数字,因为它被传递给只能接受数字的两次函数。 而这种期望基本上是由 F# 引起的:
let twice x = x*2
let calltwice y = twice y
谁知道 calltwice 是 int->int
您可以指定参数和返回类型:
function twice(x: number): number {
return x*2;
}
function calltwice(y: number): number {
return twice(y);
}
在这种情况下,编译器将在编译期间检查类型。
注意: Typescript 编译成 JavaScript,在执行过程中它根本不会检查类型。 因此,潜在地(如果您将从 JavaScript 调用此代码)您可以将任何对象传递给这些函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.