- TypeScript是JavaScript的超集,遵循最新的ES5/ES6规范。TypeScript扩展了JavaScript的语法。
- TypeScript更像后端JAVA,让JS可以开发大型企业应用
- TS提供的类型系统可以帮助我们在写代码时提供丰富的语法提示
- 在编写代码时会对代码进行类型检查,从而避免很多线上错误
1. 布尔
let bool:boolean = true;
2. 数字
let num:number = 1;
3. 字符串
let str:string = 'hello';
4. 元组
let tuple:[boolean, number, string] = [true, 1, 'hello']; // 对应位置的类型要相同
5. 数组
let arr1:number[] = [1, 2, 3];
let arr2:string[] = ['a', 'b', 'c'];
let arr3:(number | string)[] = ['a', 1, 2];
let arr4:Array<number | string> = [1,'2',3]; // 泛型方式来声明
6. enum 枚举
enum Fruits {
APPLE, // 默认从0开始
BANANA,
GRAPE
}
// 运行结果:
{
'0': 'APPLE',
'1': 'BANANA',
'2': 'GRAPE',
APPLE: 0,
BANANA: 1,
GRAPE: 2
}
7. any类型
let arr:any = [1, true, 'hello']; // 任意类型,不进行类型检测
8. null 和 undefined
// 任何类型的子类型
let x: number | null | undefined;
x = 1;
x = undefined;
x = null;
9. void
// 一般用于函数的返回值,表示没有返回值
function say():void {
console.log('123')
}
// 能接受undefined
let a:void = undefined
10. never
任何类型的子类型,never代表不会出现的值。不能把其他类型赋值给never
// 1. 运行错误,不能把其他类型赋值给never
let x: never;
x = 123;
// 2. 运行正确,never 类型可以赋值给 数字类型
let y: number;
y = (()=>{ throw new Error('exception')})();
// 3. 可以是抛出异常的情况
function error(message: string): never {
throw new Error("err"); //
}
// 4. 无法被执行到的终止点的情况
function fn(x:number | string){
if(typeof x == 'number'){
}else if(typeof x === 'string'){
}else{
console.log(x); // never
}
}
11. Symbol
Symbol 表示独一无二
const s1 = Symbol('key');
const s2 = Symbol('key');
console.log(s1 == s2); // false
12. object对象类型
object 表示非原始类型
let create = (obj:object):void=>{}
create({});
create([]);
create(function(){})