TypeScript 中的基础类型:原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型

2023-07-06 15:32:07 浏览数 (1)

TypeScript 是一种由微软开发的静态类型编程语言,它是 JavaScript 的超集,并且可以在编译时进行类型检查。TypeScript 强大的类型系统使得开发者能够更轻松地编写可维护、可扩展的代码。本文将详细介绍 TypeScript 中的基础类型,包括原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型。

原始类型

在 TypeScript 中,有以下几种原始类型:

数字类型

数字类型用于表示整数或浮点数。可以使用 number 关键字来声明数字变量。

例如:

代码语言:typescript复制
let num: number = 123;

字符串类型

字符串类型用于表示文本数据。可以使用 string 关键字来声明字符串变量。

例如:

代码语言:typescript复制
let str: string = "Hello";

布尔类型

布尔类型用于表示逻辑值,即 truefalse。可以使用 boolean 关键字来声明布尔变量。

例如:

代码语言:typescript复制
let isTrue: boolean = true;

空值和未定义类型

空值类型 (void) 用于表示没有返回值的函数。未定义类型 (undefined) 用于表示未赋值的变量。可以使用 voidundefined 关键字来声明对应的变量。

例如:

代码语言:typescript复制
let result: void = undefined;  // 空值类型
let undef: undefined = undefined;  // 未定义类型

空值和无类型类型

空值类型 (void) 用于表示没有返回值的函数。 null 类型用于表示空值或者对象引用为空。可以使用 voidnull 关键字来声明对应的变量。

例如:

代码语言:typescript复制
let nothing: null = null;  // 空值类型
let nul: null = null;  // 空值类型

对象类型

对象类型用于表示非原始数据类型,包括对象、数组、函数等。可以使用 object 关键字来声明对象类型。

对象类型

对象类型用于表示一个对象,其中包含多个键值对。可以使用 {} 或者 object 关键字来声明对象类型。对象类型可以指定属性名和属性值的类型。

例如:

代码语言:typescript复制
let person: { name: string; age: number } = {
  name: "John",
  age: 25,
};

数组类型

数组类型用于表示一个由相同类型的元素组成的有序集合。可以使用 类型[] 或者 Array<类型> 的语法来声明数组类型。

例如:

代码语言:typescript复制
let numbers: number[] = [1, 2, 3, 4, 5]; // 数字数组
let names: string[] = ["Alice", "Bob", "Charlie"]; // 字符串数组

元组类型

元组类型用于表示一个固定长度和类型的数组。可以使用 [类型1, 类型2, ...] 的语法来声明元组类型。

例如:

代码语言:typescript复制
let user: [string, number] = ["John", 25]; // 元组类型

函数类型

函数类型用于表示一个函数。可以使用 (参数类型) => 返回值类型 的语法来声明函数类型。

例如:

代码语言:typescript复制
let add: (x: number, y: number) => number = function (x: number, y: number): number {
  return x   y;
};

枚举类型

枚举类型用于表示一组有名字的常量。可以使用 enum 关键字来声明枚举类型。

例如:

代码语言:typescript复制
enum Color {
  Red,
  Green,
  Blue,
}

let color: Color = Color.Green;

在枚举类型中,每个枚举成员都有一个与它关联的数字值,默认从 0 开始。也可以手动指定枚举成员的数值。

联合类型

联合类型用于表示一个变量可以是多种类型之一。可以使用 类型1 | 类型2 | ... 的语法来声明联合类型。

例如:

代码语言:typescript复制
let value: string | number = "Hello"; // 联合类型
value = 123; // 合法

联合类型可以提供更大的灵活性,使得我们能够处理多种不同类型的值。

类型推断和类型断言

TypeScript 具有强大的类型推断能力,它可以根据上下文自动推断变量的类型。例如,如果我们在定义变量时直接赋值,TypeScript 可以推断出变量的类型。

代码语言:typescript复制
let num = 123; // 类型推断为 number
let str = "Hello"; // 类型推断为 string

此外,我们还可以使用类型断言来告诉编译器某个值的类型。类型断言有两种语法形式,<类型>值值 as 类型

代码语言:typescript复制
let someValue: unknown = "Hello";
let strLength1: number = (<string>someValue).length;
let strLength2: number = (someValue as string).length;

类型断言可以在一些无法通过类型推断的情况下提供类型信息,但要注意谨慎使用,以避免出现类型错误。

总结

本文详细介绍了 TypeScript 的基础类型,包括原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型等方面。TypeScript 强大的类型系统使得开发者能够在编译时进行类型检查,减少了在运行时出现类型错误的概率。

0 人点赞