Typescript 如何扩展声明为命名空间的类

Typescript 如何扩展声明为命名空间的类,typescript,typescript2.7,Typescript,Typescript2.7,导入typesciprt 2.7中定义的库时存在如下问题 在正式的typescript文档中,它提供了一个“模块类”模板。但该文档中没有提到扩展模块类。在这种情况下,当有一个类继承时,通常按如下方式进行。然而,当我实际引用它时,有一个编译错误找不到继承的属性 错误 类型“…”上不存在属性“…” 我们如何解决它? 请注意,我正在使用2.7中添加的esModuleInteropcompile选项 下面是示例代码 父代码和定义 子库定义 用法 你能补充一个更完整的例子吗?导致问题的属性定义?是。我已

导入typesciprt 2.7中定义的库时存在如下问题

在正式的typescript文档中,它提供了一个“模块类”模板。但该文档中没有提到扩展模块类。在这种情况下,当有一个类继承时,通常按如下方式进行。然而,当我实际引用它时,有一个编译错误找不到继承的属性

错误
类型“…”上不存在属性“…”

我们如何解决它?

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


下面是示例代码

父代码和定义 子库定义 用法
你能补充一个更完整的例子吗?导致问题的属性定义?是。我已经修改了这个例子。这够了吗?还不够。。。您应该提供一个再现您的问题的最小功能示例。。父类不能同时具有声明和定义。您的
父项导入错误,应该是
从“/parent”导入父项
你应该发布一行产生错误的代码,而不是being所说的注释
//ISSUE
,我认为你期望合并的方式不是它实际的工作方式。我不认为名称空间定义将继承来自
Parent
的方法。名称空间没有继承的概念。即使这样做了,名称空间也会添加到类的静态范围中,这样就可以访问该类,方法上的
是一个实例方法,而
名称空间中没有
这个

// 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();