TS是什么
- TypeScript是一门以JS为基础构建的语言。
- TS是JS的超集,所有JS代码均可在TS中运行。
- TS扩展了JS,并添加了类型。
- 注意:TS不能被JS解析器直接执行,需要先编译成JS代码。
类型声明
基本类型
用法
声明变量时对变量类型进行设置,但即使报错依然会编译成js代码:
1 2 3
| let a:number; a = 1; a = "666";
|
如果同时进行声明与赋值,TS可自动对变量进行类型检测:
也可对函数的参数类型与返回值类型进行声明:
1 2 3 4 5
| function sum(a: number, b: number): number { return a + b; } sum(1,2); sum(1,"2");
|
其他类型:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| let a: any = 1; let b; let str: string; let c: unknown = 1; str = a; str = c;
str = c as string; str = <string>c; function fn1(): void{} function fn2(): never{}
let person:{name: string, age?: number, [propName: string]: any}
let arr1: string[]; let arr2: Array<string>;
|
Tuple 元组
tuple元组是一种长度固定、数据类型可以不相同的数组类型,可读性与语义性强,类型安全,便于维护,性能优化。
1 2
| let h : [string,number]; h = ["abc",3];
|
Enum 枚举
enum枚举是一种定义一组命名变量的方式。
1 2 3 4 5 6 7
| enum Gender{ male, female } let person: {name: string,gender: Gender}; person = {name:"abc", gender: Gender.male} console.log(Gender.male)
|
类型别名
当类型需要重复使用时,可以为其起个别名,使用别名代替类型名来简化类型的使用。
1 2
| type myType = 1 | 2 | 3 | 4 | 5; let a: myType;
|
配置选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| { "include": [ "./src/**/*.ts", ], "exclude": [ "name", ], "compilerOptions": { "target": "es6", "module": "commonjs", "outDir": "./dist", "outfile": "./dist/test.js", "lib":["dom" ], "allowJs": true, "checkJs": true, "removeComments": true, "noEmit": true, "noEmitOnError": false, "strict": true, "alwaysStrict": true, "noImplicitAny": true, "noImplicitThis": true, }, }
|