在使用mackjs做数据的时候,需要对日期进行格式化,需要引入dayjs,但是mockjs的数据是用ts来写的,这就造成dayjs报错了
有提示:
TS1259: Module '"/zhifabanan/node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/index"' can only be default-imported using the 'esModuleInterop' flag
解决办法
你可以在你的 tsconfig.json
(如果文件不存在就创建一个) 文件中添加或更改以下选项:
{
"compilerOptions": {
"esModuleInterop": true,
"allowSyntheticDefaultImports": true
}
}
esModuleInterop
: 开启此选项使得 TypeScript 使用与 Babel 相同的方式处理 ES6 import 语法,允许我们使用默认导入语法导入 CommonJS 模块。allowSyntheticDefaultImports
: 如果设置为 true,那么默认导入或导出的声明(如 import d from "c"; var x = a.default;)不会进行检查。在实际中,TypeScript 会视为模块具有默认导出,但在 emit 阶段不会生成任何对 default 属性的引用。
这样你就可以使用这种方式导入模块:
import dayjs from 'dayjs';
请注意,这可能需要重新启动你的 TypeScript 服务器或 IDE。如果你正在使用 tsc 命令行工具,你可能需要重新运行 tsc。如果你正在使用的是 VS Code 或其他 IDE,你可能需要重新启动它们,才能使更改的 tsconfig 设置生效。