我有一个外部库thing.d.ts文件,里面有一个全局定义:
declare var thing: ThingStatic;
export default thing;
我在TypeScript中引用了npm模块:
import thing from 'thing';
...
thing.functionOnThing();
当我转换TS(针对ES6)时,它看起来像这样:
const thing_1 = require("thing");
...
thing_1.default.functionOnThing();
然后抛出一个错误:
Cannot read property ‘functionOnThing’ of undefined
为什么TypeScript在thing_1和functionOnThing()之间添加.default?
最佳答案
import thing from 'thing';
这行代码意味着“从模块中导入默认导出”并将其绑定到本地名称”.
TypeScript按您的要求执行,并访问模块对象的默认属性.
你可能想写的是
import * as thing from 'thing';