在将脚本编译为javascript时包含严格的输入

时间:2014-07-04 10:56:08

标签: javascript error-handling typescript

我正在编写然后编译为Javascript的TypeScript代码,并且几个动态函数调用直接从浏览器发送到Javascript,而不是打字稿。当您使用类型注释编写TypeScript函数时,如果某些内容类型错误,则会抛出错误。例如,简单的函数

function add(a: number, b: number): number{
    return a + b;
}

编译为无类型

function add(a, b) {
    return a + b;
}

是否有任何选项可以编译它并在函数的入口点添加类型检查?

3 个答案:

答案 0 :(得分:1)

是的,有一种方法可以进行运行时类型检查 - 但是您必须使用TS *而不是TypeScript。 TypeScript在编译期间擦除所有类型信息,为您提供干净的JavaScript代码。

Gradual Typing Embedded Securely in JavaScript在JavaScript中引入 TS * - 逐渐类型安全的语言。

这个想法是编译会对你的代码进行重大转换,这不是他们在TypeScript中所做的事情。

除非这是你真正必须拥有的东西(可能是出于白皮书中描述的安全原因),否则你可能会更好地使用TypeScript提供的更主流的设计时和编译时检查。

答案 1 :(得分:0)

Typescript不支持发出类型检查代码,需要使用instanceof,typeof等手动添加所需的任何类型检查。就像你对普通JS一样。

一直在谈论将它添加为可选标志,但从1.0.3开始就没有标志。

答案 2 :(得分:0)

TypeScript实际上只提供编译时类型检查,但总是编译为无类型的JavaScript。

如果您担心运行时类型检查,可以将自己的呼叫添加到typeofinstanceof进行检查。 http://javascript.info/tutorial/type-detection