背景
在使用mongodb时,我在vscode中写了这样的代码:
import mongo from 'mongodb';
const client = new mongo.MongoClient("mongodb://127.0.0.1:27017")
运行会报错:mongo为undefined了
当然正确的做法应该是:
import {MongoClient} from 'mongodb';
因为 mongodb 中没有default导出。那为什么编辑器不给我报错呢?甚至还有 mongo.MongoClient 这种代码提示,出现了编写与运行不一致的情况,让人很没有安全感。
后面发现是 tsconfig.json 中 esModuleInterop 字段的影响,改为false就正常了:编辑器就会提示 mongodb没有默认导出
esModuleInterop
todo