나는 array
을 통해 루프를 만들고, 원하는 항목을 잡아려고합니다. 처음에이 작업을 수행했습니다.AMD 로딩을 사용하는 TypeScript로 유형별로 객체 가져 오기
getItemsByType<T>(type: string): T[] {
var results: T[] = [];
for (var item in this) {
if (typeof this[item] === type) {
results.push(this[item]);
}
}
return results;
}
그러나 my 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' 루프 안에 쌍으로 연결하는 것이 좋습니다. –