TypeScript 是一种强类型编程语言,它建立在 JavaScript 的基础上,为开发者提供了更丰富的类型系统和更严格的编译时检查。TypeScript 的基础类型主要包括以下几种:
- 布尔类型(Boolean):
- 表示逻辑值,可以是
true
或false
。 - 示例:
let isDone: boolean = false;
- 数字类型(Number):
- 表示双精度 64 位浮点类型,也可以处理整数。
- 示例:
let age: number = 25;
- 字符串类型(String):
- 表示文本数据,可以是单引号、双引号或模板字符串。
- 示例:
let name: string = "Alice";
- 数组类型(Array):
- 表示有序的元素集合,每个元素可以是任意类型。
- TypeScript 提供了两种定义数组的方式:
- 类型后跟
[]
,如let numbers: number[] = [1, 2, 3];
- 使用泛型
Array<T>
,如let numbers: Array<number> = [1, 2, 3];
- 元组类型(Tuple):
- 表示已知元素数量和类型的数组,但各元素类型可以不同。
- 示例:
let person: [string, number] = ["Alice", 25];
- 枚举类型(Enum):
- 为一组数值赋予友好的名字,增加代码的可读性和可维护性。
- 示例:
enum Color {Red, Green, Blue}; let c: Color = Color.Green;
- 任意类型(Any):
- 表示可以是任何类型,通常用于那些我们还不清楚类型的变量。
- 示例:
let notSure: any = 4; notSure = "maybe a string instead";
- 空类型(Void):
- 表示没有任何类型,通常用于没有返回值的函数。
- 示例:
function warnUser(): void { console.log("This is my warning message"); }
- Null 和 Undefined:
-
null
表示对象值缺失,undefined
用于初始化变量为一个未定义的值。 - TypeScript 中,
null
和undefined
各有自己的类型。
- Never 类型:
- 表示的是那些永不存在的值的类型。例如,总是会抛出异常或根本就不会有返回值的函数表达式的返回值类型。
- 示例:
function error(message: string): never { throw new Error(message); }
- 对象类型(Object):
- 表示非原始类型,即除了
number
、string
、boolean
、symbol
、null
或undefined
之外的类型。 - 示例:
let person: object = { name: "Alice", age: 25 };
- 未知类型(Unknown):
- 表示未知类型,类似于
any
类型,但更加安全。使用unknown
类型的变量时,需要进行类型检查或类型断言。 - 示例:
let value: unknown = "Hello"; if (typeof value === "string") { console.log(value.toUpperCase()); }
- Symbol:
- 表示唯一的标识符,通常用作对象属性的键。
- 示例:
let id: symbol = Symbol("id"); let obj = { [id]: "12345" };
- BigInt:
- 表示任意精度的整数,可以处理超出
number
类型表示范围的整数。 - 示例:
let bigNumber: bigint = 9007199254740991n;
这些基础类型使得 TypeScript 能够为变量、函数参数和函数返回值等提供明确的类型注解,从而增强代码的可读性、可维护性和安全性。