是否可以像C ++一样使用类型参数作为泛型?
interface Genic1ParamWrapperConstructor<T>{
new<T2>():T<T2>;
}
有趣的部分是 T
答案 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