返回
从数组类型开始,玩转 TS 语言类型
前端
2024-01-10 12:45:34
在上一篇文章中,我们探讨了数组类型。这次,我们继续前进,踏上探索 TS 语言类型之旅。准备好了吗?让我们开始吧!
联合类型:
联合类型允许我们为变量指定多种可能类型。例如,我们可以定义一个变量来存储数字或字符串:
let numOrString: number | string;
numOrString = 42; // 现在它是一个数字
numOrString = 'Hello'; // 现在它是一个字符串
枚举:
枚举是一种创建自定义类型的简单方法。它可以帮助我们定义一组相关值,并为这些值指定名称。例如,我们可以创建一个枚举来表示一周中的每一天:
enum DaysOfWeek {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
let today: DaysOfWeek = DaysOfWeek.Friday;
console.log(today); // 输出:Friday
元组:
元组是一种有序的数据结构,可以存储不同类型的值。元组的每个元素都有一个固定的位置。例如,我们可以创建一个元组来存储一个人的姓名、年龄和职业:
let person: [string, number, string] = ['John', 30, 'Software Engineer'];
console.log(person); // 输出:[ 'John', 30, 'Software Engineer' ]
类型别名:
类型别名允许我们为现有类型创建一个新的名称。这有助于我们简化代码并提高可读性。例如,我们可以创建一个类型别名来表示一个数字或字符串:
type NumOrString = number | string;
let numOrString: NumOrString;
numOrString = 42; // 现在它是一个数字
numOrString = 'Hello'; // 现在它是一个字符串
接口:
接口是一种定义对象形状的方式。它允许我们指定对象应该具有的属性和方法。例如,我们可以创建一个接口来表示一个用户对象:
interface User {
name: string;
age: number;
occupation: string;
}
let user: User = {
name: 'John',
age: 30,
occupation: 'Software Engineer'
};
泛型:
泛型允许我们创建可重用的组件,这些组件可以处理不同类型的数据。例如,我们可以创建一个函数来对数组中的元素进行排序,无论数组中的元素是什么类型:
function sortArray<T>(array: T[]): T[] {
// 对数组进行排序的代码
}
const numbers = [1, 2, 3, 4, 5];
const sortedNumbers = sortArray(numbers);
const strings = ['a', 'b', 'c', 'd', 'e'];
const sortedStrings = sortArray(strings);
类型断言:
类型断言允许我们显式地告诉编译器一个变量的类型。这在某些情况下非常有用,例如,当我们需要访问对象的属性或方法,但编译器无法推断出对象的类型时。
const obj = {
name: 'John',
age: 30
};
const name = obj.name as string; // 显式地告诉编译器 name 是一个字符串
以上就是 TS 语言类型的一些基本知识。通过使用这些类型,我们可以创建更健壮、更可维护的代码。