首页 > 解决方案 > 当我不在打字稿中使用泛型时,为什么我会丢失信息?

问题描述

我有一些关于TypeScript's Generics.

标签: typescriptgenerics

解决方案


文档说我们实际上正在丢失有关函数返回时该类型是什么的信息,但怎么会这样呢?

此函数会丢失有关参数的信息:

function identity(arg: any): any {
    return arg; 
}

const foo = identity(123); // typeof foo == `any`

以下函数(使用泛型)约束函数的返回类型以匹配输入类型。这将参数的类型保留(并流动)到返回类型:

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

const foo = identity(123); // typeof foo == `number`

推荐阅读