【发布时间】:2017-10-04 13:21:43
【问题描述】:
我有一个非常简单的函数,它接受 3 个整数,将它们加在一起并将总和打印到控制台。
function add(n1, n2, n3) {
var sum : number = n1 + n2 + n3;
console.log(sum);
}
我的假设是 sum 是一个整数,因此它强制类型匹配。所以我尝试了这个。
add(1,2,"Henok");
TypeScript 不会抱怨,它只是打印出3Henok。为什么?
在 toskv 的评论中回答他提到了两件事
实际上你写的是 var sum:number = (1 as any) + (2 as any) + ('hehe3' as any) 因为参数的类型是 未指定,默认为任何
为了强制编译时抱怨他添加了这个建议
您可以在编译时启用 noImplicitAny 选项,并且 tsc 将 抱怨你没有正确输入你的代码。
这对我有用。谢谢toskv。
【问题讨论】:
-
嗯.. 你是怎么试过的?类型检查仅在编译时强制执行。在运行时它只是 javascript。
-
@toskv 我明白这只是编译时检查。我把结果只是说它确实通过了“编译时检查”
标签: typescript casting