问题 如何在TypeScript中声明“any”模块?


我需要将一些大型项目从js逐步迁移到typeScript。

我重写了ts中的文件,我想指定此时的其他文件可以包含任何内容。

例如,类似的东西:

declare module jsModule:any;
var obj:jsModule.cls = new jsModule.cls()

但它在这一刻不起作用。我需要在模块声明中指定每个导出的类/函数/变量。

我可以用一些快速的方式将外部模块声明为“any”吗?


7037
2017-07-30 16:50


起源



答案:


对于没有暴露类型和任何值的外部模块:

declare module 'Foo' {
  var x: any;
  export = x;
}

这不会让你写 foo.cls但是。

如果你要删除单个类,你可以写:

declare module 'Foo' {
    // The type side
    export type cls = any;
    // The value side
    export var cls: any;
}

14
2017-07-30 16:55



var x:any; ^^^意外的令牌变量 - Oliver Dixon
我收到错误“导出分配不能在命名空间中使用” export = x; 线下划线。知道为什么吗? - Ajm Iam
你忘记了模块名称周围的引号 - Ryan Cavanaugh


答案:


对于没有暴露类型和任何值的外部模块:

declare module 'Foo' {
  var x: any;
  export = x;
}

这不会让你写 foo.cls但是。

如果你要删除单个类,你可以写:

declare module 'Foo' {
    // The type side
    export type cls = any;
    // The value side
    export var cls: any;
}

14
2017-07-30 16:55



var x:any; ^^^意外的令牌变量 - Oliver Dixon
我收到错误“导出分配不能在命名空间中使用” export = x; 线下划线。知道为什么吗? - Ajm Iam
你忘记了模块名称周围的引号 - Ryan Cavanaugh