我可能在想這個。基本上,我想有一個非泛型接口,它實現了一些屬性,然後創建第二個類型,用它自己的泛型屬性實現該接口。使用通用接口擴展非通用接口
interface Car {
model: string;
}
interface Car<T> extends Car {
transmission: T;
}
打字稿錯誤:
「所有的 '車' 必須具有相同類型參數的聲明。」
我可以找到的唯一方法是命名不同的非通用接口,如CarBase。建議?
我可能在想這個。基本上,我想有一個非泛型接口,它實現了一些屬性,然後創建第二個類型,用它自己的泛型屬性實現該接口。使用通用接口擴展非通用接口
interface Car {
model: string;
}
interface Car<T> extends Car {
transmission: T;
}
打字稿錯誤:
「所有的 '車' 必須具有相同類型參數的聲明。」
我可以找到的唯一方法是命名不同的非通用接口,如CarBase。建議?
可以使用type alias,以節省您寫Car<any>
的麻煩:
interface Car<T> {
model: string;
transmission: T;
}
type AnyCar = Car<any>;
這是否就像寫作: '接口CarBase實現汽車
這幾乎是一樣的,但接口和類型別名之間存在差異。它在[Interfaces vs. Type Aliases]中有解釋(https://www.typescriptlang.org/docs/handbook/advanced-types.html#interfaces-vs-type-aliases) –
你到底想幹什麼?爲什麼要將它分成兩個具有相同名稱的不同界面?它相當於接口Car {model:string;傳輸:T}' –
我希望其他代碼使用非通用引用。 Currenly在做汽車繞過類型檢查,當我只想使用汽車。 –
cgatian
爲什麼他們必須有相同的名字? –