小编gwk*_*gwk的帖子

抽象类的具体子类的Typescript类型

我正在尝试解决Typescript中的这种特殊情况:

打字稿游乐场链接

abstract class foo {
    abstract bar();
}

class Foo1 extends foo {
    bar() {
        alert(1);
    }

    y: number = 3;
}

class Foo2 extends foo {
    bar() {
        alert(2);
    }
}

let myFooClasses: Array<typeof foo> = [];
myFooClasses.push(Foo1);
myFooClasses.push(Foo2);

myFooClasses.forEach((item) => {
    let a = new item();
    a.bar();
})
Run Code Online (Sandbox Code Playgroud)

具体来说,问题是从myFooClasses技术上讲可能包含foo摘要,而Typescript对此发出警告。但是我真的想将的类型限制为myFooClasses继承自的具体类foo。有什么办法可以在Typescript中指定它?

typescript typescript1.8

5
推荐指数
1
解决办法
596
查看次数

标签 统计

typescript ×1

typescript1.8 ×1