我正在编写然后编译为Javascript的TypeScript代码,并且几个动态函数调用直接从浏览器发送到Javascript,而不是打字稿。当您使用类型注释编写TypeScript函数时,如果某些内容类型错误,则会抛出错误。例如,简单的函数
function add(a: number, b: number): number{
return a + b;
}
编译为无类型
function add(a, b) {
return a + b;
}
是否有任何选项可以编译它并在函数的入口点添加类型检查?
答案 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。
如果您担心运行时类型检查,可以将自己的呼叫添加到typeof
或instanceof
进行检查。 http://javascript.info/tutorial/type-detection