TypeScript 中的泛型是一种强大的工具,它允许你编写可重用、灵活的代码,同时提高类型安全性。泛型使你能够在编写函数、类或接口时使用参数化类型。

以下是一个简单的 TypeScript 泛型示例:
// 使用泛型定义一个函数,该函数返回传入的参数数组的第一个元素
function getFirstElement<T>(arr: T[]): T | undefined {
    return arr.length > 0 ? arr[0] : undefined;
}

// 使用泛型函数
const stringArray: string[] = ["apple", "banana", "orange"];
const firstElementOfStringArray: string | undefined = getFirstElement(stringArray);
console.log(firstElementOfStringArray); // 输出: "apple"

const numberArray: number[] = [1, 2, 3, 4, 5];
const firstElementOfNumberArray: number | undefined = getFirstElement(numberArray);
console.log(firstElementOfNumberArray); // 输出: 1

在上面的例子中,getFirstElement 函数使用了泛型 <T>,这使得函数可以处理不同类型的数组。通过传递不同类型的数组,我们可以在不同上下文中重复使用这个函数。

你还可以在类和接口中使用泛型。以下是一个简单的泛型类示例:
// 泛型类
class Container<T> {
    private value: T;

    constructor(initialValue: T) {
        this.value = initialValue;
    }

    getValue(): T {
        return this.value;
    }
}

// 使用泛型类
const numberContainer = new Container<number>(42);
console.log(numberContainer.getValue()); // 输出: 42

const stringContainer = new Container<string>("Hello, TypeScript!");
console.log(stringContainer.getValue()); // 输出: "Hello, TypeScript!"

通过泛型,你可以在编写 TypeScript 代码时更灵活地处理不同类型的数据,同时仍然保持类型安全。


转载请注明出处:http://www.zyzy.cn/article/detail/13024/TypeScript