错误 TS1192: 模块“A.module”'没有默认导出

error TS1192: Module '" A.module"' has no default export

我创建了一个新模块 'A' 并尝试将其导入到另一个名为 'B' 的模块中。我在编译时收到此错误

error TS1192: Module '" A.module"' has no default export

谁能帮忙解决这个错误。

这是一个简单的错误。这是由于导入语句本身中模块名称周围缺少 {} 造成的。由于这占用了我 2-3 小时的时间,所以与大家分享,以免浪费您的时间。希望这可以帮助某人。 干杯, 阿比.

已接受的答案对我不起作用,所以我发布了更多信息。

我有:

import Module from 'module';

这对我有用:

import * as Module from 'module';

来源:https://github.com/Microsoft/TypeScript/issues/3337#issuecomment-107971371

使用:

import { Module } from 'module';

您需要在 {...}

之间插入模块名称

对我来说,这个问题是在项目 tsconfig.json 的 compilerOptions 中使用 "allowSyntheticDefaultImports": true 解决的。

我们的特定错误与 moment js 导入有关。

关于这个选项的更多信息可以found here

除了将其作为模块导入之外,您还可以像这样要求它:

const Module = require('./some_folder/module');

module.ts 将有:

module.exports = class Module {
    ... your module code
}

以上所有答案都没有解决我的错误。以下解决方案对我有用。在此之前,我有 运行 下面的命令

npm i @types/moment-timezone --save-dev

然后我在 .ts 文件中导入了如下所示的时刻。

import * as moment from "moment-timezone";

我希望,它会对某人有所帮助。谢谢!

我通过将此添加到我的 angular 项目中的 tsconfig.json 来修复它。

{
  ...
  "compilerOptions": {
    ...
    "allowSyntheticDefaultImports": true,

我通过将以下内容放入 tsconfig.json 文件中解决了上述问题:

{
  "compilerOptions": {
    ...
    "esModuleInterop": true
    ...
  }
}

您可以使用 SVGR Tool[= 将 .svg 转换为 SVG React 组件32=]

说明:

  1. 打开SVGR
  2. 复制您的 .svg 文件源代码并将其粘贴到 SVG Input
  3. 在项目目录
  4. 中创建名称为SvgComponent.jsx的文件
  5. 将来自 JSX 输出 的 jsx 代码粘贴到这个新的 .jsx 文件

要使用您的 SVG React 组件,请执行以下操作:

import SvgComponent from '../assets/SvgComponent';