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