我試圖循環訪問array
並通用地獲取我想要的項目。起初,我這樣做:在TypeScript中使用AMD加載類型獲取對象
getItemsByType<T>(type: string): T[] {
var results: T[] = [];
for (var item in this) {
if (typeof this[item] === type) {
results.push(this[item]);
}
}
return results;
}
但是,我的Foo()類只是作爲typeof對象返回。
getItemsByType<T>(type: string): T[] {
var results: T[] = [];
for (var item in this) {
if (this[item] instanceof type) {
results.push(this[item]);
}
}
return results;
}
這是行不通的,沒有實際class
我不能使用instanceof
。但是我使用的是一個AMD
加載器(dojo
),所以不能從這個孤獨的方法中獲得一個容易訪問的構造函數。
在我的具體實例中,我有一個基類型的數組,其中有許多類爲它們的定義繼承它。所以後來我需要從中抽取特定類型。如果這是不可能的,我可能需要按類型開始存儲。
任何想法?謝謝。
另外,請注意您忘記的''hasOwnProperty''。將此調用與''for ... in''循環內部配對通常是一個好主意。 –