什么是TypeScript
TypeScript是JavaScript类型的超集,它可以编译成原生JavaScript。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任意浏览器,任意操作系统上。
与JavaScript的区别
TypeScript从核心语言方面和类概念等方面对JavaScript对象模型进行扩展,TypeScript中的数据要求带有明确的类型,引入了“类”概念,为函数提供了缺省参数值,引入了模块的概念,可以把声明、函数、数据和类封装在模块中。
TypeScript优点
- 类型管理更强大,大多函数看其类型定义就知道如何使用
- 在编译器就可以发现错误,提升了程序的调试效率
- 编译器功能更加完善,包括代码补全,接口提示,重构等
安装TypeScript
使用npm安装TypeScript:
npm install typeScript -g
安装成功之后,可以用过tsc -v
命令来查看当前安装的版本。
通过TypeScript提供的tsc命令将TypeScript文件编译成JavaScript文件。
tsc xxx.ts
tsc命令不仅仅可以编译某一个TypeScript文件,还可以编译整个项目。一般在编译整体项目之前,需要先生成一个配置文件。
tsc --init
命令执行成功之后,会自动生成名为tsconfig.json的配置文件。
- target:表示编译后的JavaScript采用的ECMAScript标准的版本
- module:表示编译代码时模块化采用的标准,默认为commonjs
- outDir:表示编译后代码存储的目录
- rootDir:表示TypeScript源代码存储的目录
- sourceMap:表示是否开启源代码映射
TypeScript常见约束
非严格模式下,允许为空,null和undefined可以是任意类型的子类型。
const a:void = undefined;
//严格模式下只能是undefined
函数类型
TypeScript语言对函数的输入和输出,即参数和返回值进行约束。
function sum(a:number,b:number):number{
return a+b;
}
Any类型
Any表示允许接收任意类型,TypeScript不会对Any类型进行类型检查,所以存在类型安全问题。
function stringfy(value:any){
return JSON.stringfy(value);
}
UnKnown类型
UnKnown与Any类型类似,同样是允许接收任意类型,但它比Any更安全。UnKnown类型在被确定为某个具体类型之前,是不允许进行任何操作的。
let value:unKnown;
value.foo.bar;//Error
value();//Error
new value();//Error
value[0][1];//Error
if(typeof value === "function"){
value();//Ok
}