TypeScript 是一种由微软开发的开源语言,它是 JavaScript 的一个超集,添加了类型系统和一些其他特性。在 TypeScript 中,类型是你的代码中变量和函数值的形状的描述。使用类型可以帮助你在编译期间而非运行时捕获错误。以下是 TypeScript 中常见的数据类型:
1. 基础类型
-
Boolean: 最基本的数据类型,只有
true
和false
两个值。let isDone: boolean = false;
-
Number: TypeScript 和 JavaScript 一样,所有数字都是浮点数。
let decimal: number = 6;
-
String: 文本数据类型,可以使用双引号(
"
)、单引号('
)或者模板字符串(``
)。let color: string = "blue";
-
Array: 数组类型可以有两种表示方法:
元素类型[]
或者Array<元素类型>
。let list: number[] = [1, 2, 3]; let list2: Array<number> = [1, 2, 3];
-
Tuple: 元组类型允许你表达一个已知元素数量和类型的数组,各元素的类型不必相同。
let x: [string, number]; x = ["hello", 10];
2. 枚举
- Enum: 枚举是一种给一组数值赋予更友好名称的方式。
enum Color {Red, Green, Blue} let c: Color = Color.Green;
3. 任意类型
- Any: 用于那些我们不希望类型检查器进行检查的变量。
let notSure: any = 4;
4. 空值
- Void: 通常用于那些不返回值的函数。
function warnUser(): void { console.log("This is a warning message"); }
5. Null 和 Undefined
- Null 和 Undefined: TypeScript 里,
null
和undefined
有各自的类型,分别叫做null
和undefined
。let u: undefined = undefined; let n: null = null;
6. Never
- Never: 表示那些永不存在的值的类型,例如,那些总是抛出异常或根本就不会有返回值的函数表达式的返回值类型。
function error(message: string): never { throw new Error(message); }
7. 对象
- Object: 非原始类型,即非
number
、string
、boolean
、symbol
、null
或undefined
。declare function create(o: object | null): void;
8. 类型断言
- 类型断言: 一种类型转换,告诉编译器“我知道我在做什么”,它不执行类型检查或重新结构数据,只在编译阶段起作用。
let someValue: any = "this is a string"; let strLength: number = (someValue as string).length;
9. 类型别名和接口
- 类型别名(Type Aliases)和接口(Interfaces): 用于定义对象类型。
type User = { name: string; id: number; }; interface User { name: string; id: number; }
结论
TypeScript 提供了丰富的类型系统,允许你在编写代码时进行严格的类型检查。这对于大型项目和团队协作非常有用,因为它可以在编译时捕捉到潜在的错误,提高代码的质量和可维护性。