У меня проблемы со сравнением дочернего элемента с универсальным типом T и возвратом массива только этих типизированных дочерних элементов. Логика проста, у меня есть массив дочерних элементов с разными элементами, унаследованными от типа Test. Мне нужно только подмножество особых детей. Кажется, теперь я могу найти решение для сравнения универсального типа T с дочерними элементами.
В результате возникает ошибка TS2693: «T» относится только к типу, но здесь используется как значение.
Пробовал с instanceof, typeof, Object.getPrototypeOf, ничего не работает.
public getChildrenByType<T extends Test>(): T[] {
const output:T[] = [];
for(const child of this.children) {
if(child instanceof T) {
output.push(child);
}
}
}
return output;
}