我正在寻找一种从声明中扩展导入的简洁方法。
我尝试了以下操作,但收到了错误:error TS2507: Type 'any' is not a constructor function type.
示例代码如下:
base.d.ts
declare module 'base';
derived.ts
import * as Base from 'base';
class Derived extends Base { // error TS2507: Type 'any' is not a constructor function type.
}
答案 0 :(得分:1)
速记环境模块仅适用于值,不适用于类型。
这也不能编译,我不认为这是一个惊喜:
import * as Base from 'base';
interface X {
foo: Base.Foo;//error TS2694: Namespace ''base'' has no exported member 'Foo'
}
function f(s: string) {}
f(Base.Foo); // note: no error here, for the same Base.Foo
引入速记模块作为一种方式来表示内部的所有内容都有any
类型"。对于类和类型,没有any
的模拟 - 您无法在没有完整声明的情况下扩展类。