TypeScript是一种给JavaScript添加特性的语言扩展,增加的功能主要有:类型注解和编译时类型检查、接口、枚举,同时从ES6中反向移植过来了:类、模块、箭头函数等功能。
类型注解(Type annotations)和编译时类型检查(Compile time type checking)
类型注解在TypeScript中是记录函数或变量约束的简便方法,基于代码结构和类型注解可以提供静态分析。TypeScript在编译时启动类型检查,但是这是可选的,而且可以被忽略而使用JavaScript常规的动态类型。
对于基本类型的注解是number, bool和string,而弱或动态类型的结构则是any类型。
类型注解可以被导出到一个单独的声明文件以让使用类型的已被编译为JavaScript的TypeScript脚本的类型信息可用,因此注解可以为一个现有的JavaScript库声明,就像已经为Node.js和jQuery所做的那样。当类型没有给出时,TypeScript编译器利用类型推断以推断类型,但是如果由于缺乏声明,没有类型可以被推断出,那么它就会默认为是动态的any类型。