将typescript编译为javascript时包含严格的类型

将typescript编译为javascript时包含严格的类型,javascript,error-handling,typescript,Javascript,Error Handling,Typescript,我正在编写TypeScript代码,然后将其编译为Javascript,并且几个动态函数调用直接从浏览器调用Javascript,而不是TypeScript。当您编写带有类型注释的TypeScript函数时,如果某个类型错误,它将抛出一个错误。例如,简单函数 function add(a: number, b: number): number{ return a + b; } 被编译为类型较少的 function add(a, b) { return a + b; } 是否有

我正在编写TypeScript代码,然后将其编译为Javascript,并且几个动态函数调用直接从浏览器调用Javascript,而不是TypeScript。当您编写带有类型注释的TypeScript函数时,如果某个类型错误,它将抛出一个错误。例如,简单函数

function add(a: number, b: number): number{
    return a + b;
}
被编译为类型较少的

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

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

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


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

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


如果您关心运行时类型检查,可以将自己的调用添加到
typeof
instanceof
进行检查

是的,有一种方法可以进行运行时类型检查,但您必须使用TS*而不是TypeScript。TypeScript会在编译过程中删除所有类型信息,从而为您留下干净的JavaScript代码

引入TS*——JavaScript中逐渐实现类型安全的语言

其想法是编译将对代码进行重大转换,而这不是他们一直热衷于在TypeScript中做的事情

除非这是您真正必须具备的(可能是出于白皮书中描述的安全原因),否则您最好使用TypeScript提供的更主流的设计时和编译时检查