TypeScript
介绍
官方 介绍: TypeScript is JavaScript with syntax for types.
翻译过来就是: “TypeScrip是带有类型 语法的JavaScript。”
历史
2012年10月,微软发布了首个公开版本的TypeScript。2013年6月19日,在经历了一个预览版 之后微软正式发布了正式版 TypeScript。TypeScript 的作者是安德斯·海尔斯伯格 ,C#的首席架构师 。
安装
1 > npm install -g typescript
数据类型
与js中数据类型一致,增加了枚举类型
number
string
boolean
undefined
BigInt
Symbol
Object
函数返回类型
1 2 3 4 let a : any ; let hello = 'hello' ; let helloworld : string = `${hello} world` ;console .log (helloworld);
1 2 3 4 5 let list1 : number [] = [1 , 2 , 3 ];console .log (list1);let list2 : Array <number > = [1 , 2 , 3 ];
1 2 3 4 5 enum Color { Red = '#fe5f55' , Green = '#fff1c1' , Blue = '#293462' }; let c : Color = Color .Green ; console .log (c);
1 2 3 4 5 function warnUser ( ): void { console .log ('This is my warning message' ); } console .log (warnUser ());
1 2 3 4 5 6 7 8 9 function error (message: string ): never { throw new Error (message); } function error_ (message: string ) { return error ("Something failed" ); }
解构赋值
1 2 3 4 5 6 7 let obj = { name : 'zhangsan' , age : 18 , } let { name, age }: { name : string , age : number } = obj;type C = { name : string , age : number };let { name : name1, age : age1 }: C = obj;
接口interface
1 2 3 4 5 6 7 8 9 10 11 12 13 14 interface Person { readonly name : string ; age : number ; isAdmin?: boolean ; } type P = Person ;let zhangsan : P = { name : 'zhangsan' , age : 18 , };
只读属性
做为变量使用的话用 const`,
若做为属性则使用readonly。
1 2 3 4 let arr : ReadonlyArray <number > = [1 , 2 , 3 ];let newArr : number [] = arr as number [];
接口与type
type可实现的interfere都可以实现
区别: type不可新增属性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 interface User { name : string , age : number , } interface VIPUser extends User { money : number , } let jam : VIPUser ;interface User { height : number , } let rose : User = { name : 'rose' , age : 18 , height : 165 }
1 2 3 4 5 6 7 8 9 type User = { name : string , age : number , } type VIPUser = User & { money : number , } let jack : VIPUser ;
泛型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 function fun<T>(arg : T): T { return arg; } class Data <T> { data : T; }
枚举作类型
1 2 3 4 5 enum Color { Red = '#fe5f55' , Green = '#fff1c1' , Blue = '#293462' }; let c : Color = Color .Green ; console .log (c);
函数参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 function moreType (id: number | string ) {} function optional (id?: number ) {} function doFun (fun: (str: string ) => void ) { fun ('hello typrScript' ); }
相关链接