我怎么能扩展声明为命名空间的类

时间:2018-05-08 10:24:31

标签: typescript typescript2.7

导入typesciprt 2.7中定义的库时出现问题,如下所示。

在官方打字稿文档中,它提供了“模块级”模板。但是没有提到在该文档中扩展模​​块类。在这种情况下,当有一个继承的类时,通常按如下方式进行。但是,当我实际引用它时,存在无法找到继承属性的编译错误。

错误

Property '...' does not exist on type '...'

我们如何解决?

请注意,我正在使用2.7中添加的esModuleInterop编译选项。

下面是情况的示例代码。

家长代码&定义

// Code
export default class Parent {
    on() {
        // ...
    }
}

// Definition
declare class Parent {
    on(): this
}

export default Parent;

子库定义

import * as Parent from "parent";

declare class Child extends Parent {
    // ...
    // Parent's "on" method can be noticed here
}

declare namespace Child {
    // ISSUE
}

用法

import Child from "child";

const child = new Child();

// `Property 'on' does not exist on type 'Child'`.
child.on();

0 个答案:

没有答案