typescript文件引入dayjs报错

typescript yekong

在使用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 设置生效。

喜欢