你了解 TypeScript 的数据类型有哪些吗?
TypeScript 提供了多种数据类型以增强 JavaScript 的静态类型检查能力,包括基本类型和高级类型。
TypeScript 提供了多种数据类型以增强 JavaScript 的静态类型检查能力,包括基本类型和高级类型。以下是主要分类及示例:
基本类型
- boolean(布尔类型): 表示真/假值(
true
或false
)。常用在逻辑判断中。let isValid: boolean = true;
- number(数字类型): 表示所有数字,包括整数、浮点数、进制数(如二进制、八进制)。替代整数/浮点数区分。
let decimal: number = 10; let hex: number = 0xf00d; // 十六进制
- string(字符串类型): 表示文本数据,可以使用单引号、双引号或模板字符串。
let name: string = "John";
- null 和 undefined: 表示空或未定义的值。常用于默认或可选场景。
let value1: null = null; let value2: undefined = undefined;
- symbol(符号类型): 创建唯一标识符,适用于对象属性的键。确保属性名唯一。
const symKey: symbol = Symbol("key");
- bigint(大整数类型): 处理大整数值(
>2^53
),使用n
结尾的数值标识。let largeValue: bigint = 9007199254740991n;
- void(空类型): 表示无返回值,通常用于函数返回值。函数体内用
undefined
。function logMessage(): void { console.log("Done"); }
高级类型
- any(任意类型): 跳过静态检查,用于动态变化或兼容 JavaScript 原有代码。易引起类型安全损失。
let data: any = 10; data = "hello";
- array(数组类型): 表示同类型元素的集合,支持通用数组语法
Array<T>
或T[]
。let numArray: number[] = [1, 2, 3];
- tuple(元组类型): 固定长度和位置的强类型数组,用于确保元素顺序和类型匹配。
let student: [string, number] = ["Alice", 20];
- enum(枚举类型): 表示一组常量集合,自动映射数值(默认从 0)或字符串。简化命名常量和数字关系的表示。
enum Color { Red, Green, Blue }; let bgColor: Color = Color.Red;
- never(绝不出现类型): 标识永不返回的值,适用于总会抛错或死循环函数、不可能状态条件分支。
function errorMsg(message: string): never { throw new Error(message); }
复合与对象类型
- object(对象类型): 支持 JavaScript 对象结构,常用或搭配 interface。可用于复杂数据模型。
interface User { name: string; age: number; } let user: object = { name: "Bob", age: 30 };
- function(函数类型): 明确定义参数类型与返回值类型(如
void
、 string 等),确保调用一致性。function increment(x: number): number; return x + 1; }
特殊增强类型
- union(联合类型): 允许变量为多种可能类型之一(如
string | number
),用垂直线语法提高灵活性。let identifier: string | number = "ID123";
- type alias(类型别名): 别名映射类型定义(如
type MyType<T> = T[];
),支持复用简化复杂结构组合使用联合或交叉实现逻辑约束。
该列表体现了 TypeScript的类型安全性增强能力及其在现代前端开发中的核心价值。