第一话:基础数据类型
布尔值--boolean
let nn:boolean = true;
数字--number
// 所有数字都是浮点数
let nn: number = 6;
字符串--string
let name: string = 'aa';
let name01: string = `hello ${name}`;
数组--Array
方式一:直接在基础类型后加[]
1、let list: number[] = [1, 2, 3]; let list: string[] = ['a', 'b', 'c'];
方式二:数组泛型Array<元素类型>
2、let list: Array<number> = [1, 2, 3]; let list: Array<string> = ['a', 'b', 'c'];
元组
元组类型允许标识一个已知元素类型和数量的数组,各元素的类型可以不同。
let x: [ string, number ];
x = [ 'aa', 10 ]; // right
x = [ 10, 'aa' ]; // error
x[3] = 'bb'; // right
x[3] = 12; // right
x[3] = true; // error boolean is not string | number
枚举--enum
默认从0开始排序:
enum Color { red, green, yellow };
let c: Color = Color.red; // c = 0;
也可以手动写编号,后面的依次相加:
enum Color { red = 1, green, yellow };
let c:Color = Color.green; // c = 2;
也可以由枚举的值得到名字
enum Color { red = 1, green = 3, yellow = 6 };
let coName: string = Color[3]; // coName = 'green'
Any
let notSure: any = 4;
notSure = 'aa'; // right
notSure = true; // right
用于定义不知全部元素类型的数组:
let notSureList: any[] = [ 1, 'aa', true ];
Void
表示没有任何类型,函数没有返回值时可使用:
function fun(): void {
console.log(123);
}
定义变量时,只能赋予undefined和null;
let unaa: void = undefined; let uubb: void = null;
Null和Undefined
他们本身的类型用处不是很大
let aa: null = null;
let uu: undefined = undefined;
Never
never类型是所有类型的子类型,可以赋值给任何类型的变量(包括void | null | undefined),反之则不可。
一般用于总是会抛出错误或根本不会有返回值的函数。
类型断言
直接告诉编译器变量的类型,绕过编译的检查,有两种方式
方式一:尖括号语法
let valueName: any = 'This is string';
let valueLen: number = (<string>valueName).length;
方式二:as语法 (JSX中只能使用as)
let valueName: any = 'This is string';
let valueLen: number = (valueName as string).length;