我正在尝试使用来自单独文件的附加字段来扩充类。但是,我遇到了麻烦,因为这似乎使嵌套声明的名称空间不可访问。
Augment.ts:
declare module './MyClass' {
export default interface MyClass {
augmentedField: any
}
}
import MyClass from './MyClass';
export { MyClass };
MyClass.ts:
namespace MyClass {
interface Nested {
}
}
class MyClass {}
export default MyClass;
User.ts:
import {MyClass} from './Augment'
interface Example {
nested: MyClass.Nested
}
失败:
“ MyClass”仅引用一种类型,但在此处被用作命名空间。
有什么主意,我们怎么做这项工作?
答案 0 :(得分:0)
我认为完全不应该支持扩展默认导出,但是当前界面情况已经超出了该检查范围,并导致了其他错误行为。我提交了a TypeScript bug。最好的选择可能是将MyClass
命名为MyClass.ts
的导出,而不是默认的导出。