具有原始参数列表的Typescript类型参数

时间:2018-12-05 11:18:53

标签: typescript typescript-generics

是否可以像C ++一样使用类型参数作为泛型?

interface Genic1ParamWrapperConstructor<T>{
    new<T2>():T<T2>;
}

有趣的部分是 T ,因为打字稿编译器会生成一条错误消息:类型“ T”不是通用的

1 个答案:

答案 0 :(得分:0)

要像在您的情况下那样在界面上使用它,您将需要以下内容

interface GenericIdentityFn<T> {
    (arg: T): T;
}

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

let myIdentity: GenericIdentityFn<number> = identity;

请记住,您应该在接口上使用它来设置整个接口的类型,或者分别为每种方法设置类型。那可能就是错误所在。 所以:

interface Genic1ParamWrapperConstructor<T>{
    new(arg: T): T;
}

interface Genic1ParamWrapperConstructor{
    new<T>(arg: T): T;
}

取决于您的喜好。

您还可以使用任何参数

    function identity(arg: any): any {
        return arg;
    }
let output = identity("myString");  // type of output will be 'string'

可以找到更多信息here