TypeScript 类、泛型的使用实践记录 | 青训营

60 阅读1分钟

在TypeScript中,使用泛型可以在定义函数、类或接口时 延迟指定具体的类型,从而增加代码的灵活性和重用性。泛型可以在不同场景下使用,包括数据结构、函数、类等。

泛型的基本用法

在函数中使用泛型

在函数中使用泛型可以允许函数接受不同类型的参数,而返回相应的类型

identity 函数可以适用于任何特定的类型👇

function identity<T>(arg: T): T {
    return arg;
}

console.log(identity<string>("Hello!")); // Hello!

在接口中使用泛型

也可以在接口中使用泛型来定义参数的类型:

image.png

在类中使用泛型

在类中使用泛型可以用于指定类的属性、方法和构造函数的参数类型:

image.png

类型约束增加代码的灵活性和安全性

想限制泛型的类型范围以确保代码的安全性和一致性,可以使用类型约束,以增加代码的灵活性和安全性。

extends

可以使用 extends 关键字来约束泛型类型必须是某个类型的子类型:

image.png

多重类型约束

使用 & 运算符来进行多重类型约束:

image.png

keyof和索引类型

可以使用 keyof 关键字和索引类型来对泛型进行约束,使其只能接受某个类型的属性名:

image.png

通过这些泛型和类型约束的用法,可以使代码更具灵活性和安全性,减少潜在的错误, 在函数、类、接口等不同的上下文中使用泛型和类型约束,提高代码质量和可维护性。