类型参数名称?

时间:2019-08-24 18:21:00

标签: typescript

我是Typescript的新手;我已经阅读了文档,并且了解了通用类型T;但是在这个非常简单的示例中有什么问题?

function test1<string>(x:number):boolean{
    let s:string="hello";
    if (x==1 && s==="hello") return true
    else return false
}

编译器说:“类型参数名称不能为'string'”。 错误出现在<string>上。 在我的练习中,我尝试定义一个非通用类型参数,在此示例中,为<string>

1 个答案:

答案 0 :(得分:0)

保留的关键字(例如String)不能用作通用名称。要定义非泛型,可以使用extends关键字。签出以下示例:

interface Lengthwise {
    length: number;
}

function loggingIdentity<T extends Lengthwise>(arg: T): T {
    console.log(arg.length);  // Now we know it has a .length property, so no more error
    return arg;
}

有关泛型的更多信息,请参见:https://www.typescriptlang.org/docs/handbook/generics.html