首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeScript不强制对函数参数进行类型检查。

TypeScript不强制对函数参数进行类型检查。
EN

Stack Overflow用户
提问于 2013-08-19 03:44:02
回答 1查看 5.5K关注 0票数 5

我的印象是,TypeScript允许您使用有效的JavaScript程序,并通过使几个关键符号类型安全来“强制”类型。这将通过所有使用传播类型,并使您更新所有符号引用。

这似乎是不正确的。在下面的示例中,makeDiv函数在不检查参数类型的情况下调用类型化make函数。

代码语言:javascript
复制
// strongly typed arguments
function make(tagName: string, className: string) {
    alert ("Make: " + className.length);
}

// no typing
function makeDiv(className) {
    // calling the typed function without type checking
    return make("div", className);
}

makeDiv("test"); 
makeDiv(6); // bang!

我是不是错过了什么?是否有办法执行“更严格”的类型检查?或者这是由TypeScript创建者做出的设计决策?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-19 04:23:58

这是一个设计决策。任何未显式类型的内容都会变成隐式类型,成为any类型。any与所有类型兼容。

代码语言:javascript
复制
var x:any = 123;
x = "bang";

为了防止隐式输入变量为any,有一个以TypeScript 0.9.1开头的编译器标志(--noImplicitAny)

如果使用此选项进行编译,您的代码将不会编译,除非您这样做:

代码语言:javascript
复制
// You need to explicitly mention when you want something to be of any type. 
function makeDiv(className:any) {
    // calling the typed function without type checking
    return make("div", className);
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18306108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档