全局下载:npm i typescript -g
编译.ts文件:tsc 1.ts自动生成对应js文件
基本类型:
1.布尔,数字,字符串
ts文件
//布尔类型 var a:boolean=true; //数字类型 var b:number=2; var c:number=0x123; var d:number=0o123; //字符串 var e:string=‘hello world‘; var m:string=`boolean分为:${a}和false` console.log(m)
编译后的js文件
//布尔类型 var a = true; //数字类型 var b = 2; var c = 0x123; var d = 83; //字符串 var e = ‘hello world‘; var m = "boolean\u5206\u4E3A\uFF1A" + a + "\u548Cfalse"; console.log(m);//布尔,数字,字符串
2.数组和元组
ts文件
//数组 //定义方式1 var a: number[]=[1,2,3,4]; //定义方式2 var b: Array<number>=[1,2,3,4]; //元组 可以在一个数组定义多种不同的值 let c: [number,string,boolean]=[1,‘a‘,true];
编译后的js文件
//数组 //定义方式1 var a = [1, 2, 3, 4]; //定义方式2 var b = [1, 2, 3, 4]; //元组 可以在一个数组定义多种不同的值 var c = [1, ‘a‘, true];
3.enum枚举 是一组可以命名数值的集合
类似于数组,大括号内为元素,可以通过元素访问下标,通过下标访问元素
默认的其实位置为0,可以自己设置
ts文件
//枚举类型 enum Color {Red, Green, Blue} var a: Color =Color.Red;//访问Red下标 console.log(a);//0 var b=Color[0];//访问下表为0的元素 console.log(b);//Red //自行设置起始位置 enum Person {name=1,age,job} var c=Person.age;//2 console.log(c)//2 console.log(Person) //{ ‘1‘: ‘name‘, ‘2‘: ‘age‘, ‘3‘: ‘job‘, name: 1, age: 2, job: 3 }
编译后的js文件
//枚举类型 var Color; (function (Color) { Color[Color["Red"] = 0] = "Red"; Color[Color["Green"] = 1] = "Green"; Color[Color["Blue"] = 2] = "Blue"; })(Color || (Color = {})); var a = Color.Red; //访问Red下标 console.log(a); //0 var b = Color[0]; //访问下表为0的元素 console.log(b); //Red //自行设置起始位置 var Person; (function (Person) { Person[Person["name"] = 1] = "name"; Person[Person["age"] = 2] = "age"; Person[Person["job"] = 3] = "job"; })(Person || (Person = {})); var c = Person.age; //2 console.log(c); //2 console.log(Person); //{ ‘1‘: ‘name‘, ‘2‘: ‘age‘, ‘3‘: ‘job‘, name: 1, age: 2, job: 3 }
4.any类型 数据类型不确定时候,可以用any类型来接受任意类型
ts文件
//any var a:any=1; var b:any=true; var c:any=‘hello world‘;
编译后的js文件
//any var a = 1; var b = true; var c = ‘hello world‘;
5.void没有类型,和java一样,多用于函数,表示没有返回值
6.never类型表示从来不会有的类型,可用于代码出错返回值类型
ts文件
//never var a=‘错误‘; function f(a){ throw new Error(a) } f(a);
编译后的js文件
//never var a = ‘错误‘; function f(a) { throw new Error(a); } f(a);
7.类型断言 主要用于告诉编译器 <>和as两种 用法一样
//断言 var a:string=‘hello world‘; var b:number=(<string>a).length; var c:number=(a as string).length;