【问题标题】:Typescript sub classes: refer to derived class in super class?打字稿子类:在超类中引用派生类?
【发布时间】:2021-03-09 11:22:37
【问题描述】:
class A {
    parentList: List<A>;
}

class B extends A {}

对于B 类,parentList 是否自动成为 List&lt;B&gt; 类型(无需为每个子类重新定义)?

【问题讨论】:

    标签: typescript


    【解决方案1】:

    你需要polymorphic this:

    class A {
        public list: Array<this>;
    }
    
    class B extends A { }
    
    declare const b: B;
    
    const listOfB = b.list; // B[]
    
    declare const a: A;
    
    const listOfA = a.list; // A[]
    

    【讨论】:

    • 我花了一点时间找到this 类型的(隐藏得很好的)新文档。有趣的。这对我来说是新的(虽然我不记得我上次在 JS/TS 中写一个类)
    • 不错,也没用过
    • @spender 你也可以在接口定义中使用 poly this。 interface Int { ints: this[]; }.
    猜你喜欢
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多