簡體   English   中英

Typescript, class 類型不可分配給索引接口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM