這個問題在這里已經有了答案: JavaScript 中的 instanceof 運算子是什么? (11 個回答) 12 小時前關閉。
我有一個包含不同實作的陣列 (Element[])。
現在,識別陣列元素的“子類”/型別的正確方法是什么?即如何將 Element[1] 識別為 RedElement 的實作?
export interface Element {
...
}
export class RedElement implements Element {
...specific functionality/values.
}
export class GreenElement implements Element {
...specific functionality/values.
}
const myArr: Element[] = [
new GreenElement(...params),
new GreenElement(...otherParams),
new RedElement(...),
...
]
現在,當我以后想使用其中一個元素時,我需要知道它是哪個型別/類,但我剩下的只是一個 Object 型別Element。
myArr.forEach(e => {
e <- has type Element
});
我顯然可以添加一個屬性,通過字串或列舉將每個元素標識為其特定類,但這似乎不太優雅。
有沒有更好的辦法?
uj5u.com熱心網友回復:
由于您正在創建類,因此您可以使用instanceof運算子來區分不同的元素。
myArr.forEach(e => {
if (e instanceof RedElement) {
...
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/484022.html
標籤:javascript 打字稿
下一篇:如何將角度的布林值系結到api?
