javascript – 为什么TypeScript将.default添加到全局定义的导入?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么TypeScript将.default添加到全局定义的导入?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个外部库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?

ThingStatic上没有名为default的属性,并且.d.ts文件定义的底层JS对象上没有默认属性.

为什么TypeScript会添加属性以及如何阻止它?

最佳答案
import thing from 'thing';

这行代码意味着“从模块中导入默认导出”并将其绑定到本地名称”.

TypeScript按您的要求执行,并访问模块对象的默认属性.

你可能想写的是

import * as thing from 'thing';
@H_502_60@

猜你在找的JavaScript相关文章