我有一个父类,名为MyClass。它有两个孩子定义为:将子类的实例从父变量赋值给子变量
export class MyChildFirst extends MyClass {...}
export class MyChildSecond extends MyClass {...}
MyClass的每个实例都属于两个孩子中的一个。然后我有一个MyClass数组。我正在循环访问数组,并且我想将属于MyChildSecond的MyClass实例分配给MyChildSecond数组。
var bigArray = new Array<MyClass>();
// ...
// populate that array
// ...
var smallArray = new Array<MyChildSecond>();
for (var element of bigArray) {
if (element.constructor.name === 'MyChildSecond') {
smallArray[smallArray.length] = element;
}
}
然而,这不工作,因为即使代码确保只有MyChildSecond将被分配到该阵列中,正在观看“元素”作为MyClass的,因此不能把它分配给一个变量持有MyChildSecond。我怎样才能实现这个?
你的代码看起来不错,它在这里工作:https://plnkr.co/edit/grZj8tMKfkQ5Nixzh7Q8?p=preview – Pengyy
这不是我的角申请的范围内工作。 –