这是我的代码:
import lodash from "lodash"
lodash.sampleSize([1,2], 1);
这是生成的代码:
const lodash_1 = require("lodash");
lodash_1.default.sampleSize([1,2], 1);
在另一个问题中,我提出了将lodash重命名为lodash_1的令人困惑的问题,但是我的问题是,当TypeScript很容易检测到所需npm上没有这样的“ default”时,为什么要添加“ default”模块,在这种情况下为lodash?
这有点令人生气,因为当我编写代码时,它只有在没有默认值的情况下才有效,并且我会从TypeScript服务获得所有帮助,但是只有在我编译时,它才会抛出错误,因为“默认”会不存在。为什么在编译过程中添加TypeScript?为什么要强迫我在开发期间不使用默认值,然后在编译期间中断呢?我好伤心。
答案 0 :(得分:1)
但是我的问题是TypeScript为什么要添加“默认”
因为这就是x
中的import x as "x"
所映射的。其默认导入。
这有点令人生气,因为当我编写代码时,只有在没有默认设置的情况下,它才有效,
如果您的"esModuleInterop": true
中有tsconfig.json
,它将起作用
仅当您不使用 native es模块时才需要该标志。今天的大多数模块都不是本机es模块,实际上不是commonjs模块。因此,它是默认情况下应启用的标志。