Typescript导入老式JS库(非类样式),并导出为ES6样式

时间:2018-07-13 01:46:15

标签: typescript ecmascript-6 module

现在,在将ts文件编译为ES6 js时,tsc保持导入语句不变。

================================================ =================

给出一个名为ModuleA的 JavaScript库,其内容如下:

(function(){
    var ModuleA = {
        /* members */
    };
})();

它也定义了一个.d.ts文件。 接下来,在ts文件中,我们要导入它:

import * as ModuleA from "./ModuleA";
let v = new ModuleA.ClassFoo();

同时,进行编码时,(Visual Studio代码的)Intelligentense效果很好。 但是当我编译它(目标ES6,模块式ES6)并运行时。浏览器提示“ ClassFoo不是构造函数。

要解决此问题,我将ts文件中的导入语句更改为:

import "./Module"

出现编译错误(并且intelligense不再起作用),但可以在浏览器中工作。

================================================ =================

使用库konva进行2D绘画时遇到了这个问题。

参考代码:

index.html

<script type="module">
    import "./main.js";
    main();
</script>

main.ts

import "./node_modules/konva/konva.js";
function main()
{
    let stage = new Konva.Stage();
}

konva库是从npm安装的。

0 个答案:

没有答案