在 TypeScript 中,基础类型(也称为原始类型)与 JavaScript 的基础类型大致相同,但 TypeScript 通过类型注解提供了额外的类型检查功能。以下是 TypeScript 中的主要基础类型及其用法示例:
1. 布尔值 (boolean)
布尔值类型表示逻辑上的真或假。它只有两个可能的值:true 和 false。
let isDone: boolean = true;
2. 数字 (number)
数字类型表示所有的数字,无论是整数还是浮点数。在 TypeScript 中,所有的数字都是浮点数,符合 IEEE 754 标准。
let decimal: number = 6;
let hex: number = 0xf00d; // 十六进制
let binary: number = 0b1010; // 二进制
let octal: number = 0o744; // 八进制
3. 字符串 (string)
字符串类型表示文本数据。可以使用双引号(")、单引号(')或者反引号(`)来表示字符串。
let color: string = "blue";
color = 'red';
let fullName: string = `John Doe`;
let age: number = 30;
let sentence: string = `Hello, my name is ${fullName}. I'll be ${age + 1} years old next month.`;
4. 数组 (Array)
数组类型用于表示一组相同类型的值。有两种定义数组的方法:
- 使用元素类型后接
[]:
let list: number[] = [1, 2, 3];
- 使用泛型数组类型:
let list: Array<number> = [1, 2, 3];
5. 元组 (Tuple)
元组类型允许表示一个已知数量和类型的数组,各元素的类型不必相同。
let x: [string, number];
x = ["hello", 10]; // OK
// x = [10, "hello"]; // Error
6. 枚举 (enum)
枚举类型用于定义一组命名常量。枚举成员默认从零开始编号,也可以手动指定。
enum Color {Red, Green, Blue}
let c: Color = Color.Green;
enum ColorWithValues {Red = 1, Green, Blue}
let cWithValue: ColorWithValues = ColorWithValues.Green;
enum ColorCustomValues {Red = 1, Green = 2, Blue = 4}
let cCustom: ColorCustomValues = ColorCustomValues.Blue;
// 获取枚举成员的名称
let colorName: string = Color[2]; // 'Green'
7. 任意类型 (any)
any 类型表示可以是任意类型,用于表示允许赋值为任何类型的变量。通常用于处理第三方库、用户输入或动态内容。
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // okay, definitely a boolean
// 可以包含任意类型的数组
let list: any[] = [1, true, "free"];
list[1] = 100;
8. 空值 (void)
void 类型表示没有任何类型。通常用于函数表示没有返回值。
function warnUser(): void {
console.log("This is my warning message");
}
let unusable: void = undefined; // 只能赋值 undefined 或 null (严格模式下)
9. null 和 undefined
null 和 undefined 分别表示空值和未定义。这两个类型本身有各自的类型。
let u: undefined = undefined;
let n: null = null;
10. 从不 (never)
never 类型表示永不存在的值的类型,例如那些总是会抛出异常或根本不会有返回值的函数。
function error(message: string): never {
throw new Error(message);
}
function fail() {
return error("Something failed");
}
function infiniteLoop(): never {
while (true) {}
}
11. object
object 类型表示非原始类型,即不包括 number, string, boolean, symbol, null, 或 undefined。
declare function create(o: object | null): void;
create({ prop: 0 }); // OK
create(null); // OK
// create(42); // Error
// create("string"); // Error
// create(false); // Error
// create(undefined); // Error
了解这些基础类型是学习 TypeScript 的第一步,它们为静态类型检查和提高代码质量提供了坚实的基础。