[英]Typescript, class type is not assignable to index interface
我有一个具有一些公共属性的 class,我想将它传递给具有索引接口类型的通用参数的 function,但是我收到一个编译器错误,提示Argument of type 'Car' is not assignable to parameter of type '{ [k: string]: unknown; }'.
Argument of type 'Car' is not assignable to parameter of type '{ [k: string]: unknown; }'.
有人可以解释什么是错的,因为我假设所有类都是 object 类型的?!
class Car {
name: string | undefined;
}
function toStr <T extends { [k: string]: unknown }>(i: T) {
return i.toString();
}
const jeep = new Car();
jeep.name = 'jeep';
toStr(jeep);
只需使用object
代替{ [k: string]: unknown }
。
class Car {
name: string | undefined;
}
function toStr <T extends object>(i: T) {
return i.toString();
}
const jeep = new Car();
jeep.name = 'jeep';
const result = toStr(jeep);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.