繁体   English   中英

为什么 TypeScript 不推断输入参数的类型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM