基本类型
类型 | 例子 | 描述 |
---|---|---|
number | 1, -33, 2.5 | 任意数字 |
string | 'hi', "hi", hi | 任意字符串 |
boolean | true、false | 布尔值true或false |
字面量 | 其本身 | 限制变量的值就是该字面量的值 |
any | * | 任意类型 |
unknown | * | 类型安全的any |
void | 空值(undefined) | 没有值(或undefined) |
never | 没有值 | 不能是任何值 |
object | {name:'孙悟空'} | 任意的JS对象 |
array | [1,2,3] | 任意JS数组 |
tuple | [4,5] | 元素,TS新增类型,固定长度数组 |
enum | enum{A, B} | 枚举,TS中新增类型 |
-
布尔值 (Boolean)
let isDone: boolean = false;
-
数字 (Number)
let decimal: number = 6; let hex: number = 0xf00d; let binary: number = 0b1010; let octal: number = 0o744;
-
字符串 (String)
let color: string = "blue"; color = 'red';
-
数组 (Array)
let list: number[] = [1, 2, 3]; // 使用数组泛型 let list: Array<number> = [1, 2, 3];
-
元组 (Tuple)
let x: [string, number]; // 正确 x = ["hello", 10]; // 错误 x = [10, "hello"];
-
枚举 (Enum)
enum Color {Red, Green, Blue} let c: Color = Color.Green;
-
任意 (Any)
let notSure: any = 4; notSure = "maybe a string instead"; // 正确,any 类型可以赋值为任何类型 notSure = false;
-
空值 (Void)
function warnUser(): void { console.log("This is my warning message"); } // 通常用于函数没有返回值的情况 let unusable: void = undefined;
-
Null 和 Undefined
let u: undefined = undefined; let n: null = null;
-
Never
function error(message: string): never { throw new Error(message); } function infiniteLoop(): never { while (true) {} }
-
对象 (Object)
let obj: object = { prop: 0 };
类型断言
类型断言允许你手动指定一个值的类型。有两种形式:
-
尖括号语法
let someValue: any = "this is a string"; let strLength: number = (<string>someValue).length;
-
as 语法
let someValue: any = "this is a string"; let strLength: number = (someValue as string).length;
联合类型
联合类型允许一个变量拥有多个类型之一:
let value: string | number;
// 正确
value = "hello";
// 正确
value = 10;
// 错误
value = true;
交叉类型
交叉类型允许一个变量拥有多个类型的所有特性:
interface A { a: number }
interface B { b: string }
let x: A & B = { a: 1, b: "hello" };