我的印象是,TypeScript 允许您采用有效的 JavaScript 程序并通过使一些关键符号类型安全来“强制”类型。这将通过所有用法传播类型,并使您更新所有符号引用。
这似乎是不正确的。在以下示例中,该makeDiv
函数正在调用类型化make
函数而不检查参数类型。
// 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 创作者做出的设计决定?