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

Abh*_*bhi 53 angular2-modules angular

我创建了一个新模块'A'并尝试将其导入另一个名为'B'的模块中.我在编译时遇到错误"错误TS1192:模块""A.module"'没有默认导出'.任何人都可以请求如何解决此错误的帮助.

Abh*_*bhi 164

这是一个简单的错误.我忘了在导入语句中将花括号放在模块名称周围.但这耗费了2-3个小时的时间.希望这有助于某人.欢呼,阿比.

  • 非常误导性的错误消息没有帮助. (8认同)
  • 天啊.谢谢...仅仅是因为,这是怎么回事...大声错误:从'./your-whatever-file.component'导入YourWhateverThing.右:从'./your-whatever-file.component'导入{YourWhateverThing}. (7认同)

not*_*ere 27

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

我有:

import Module from 'module';
Run Code Online (Sandbox Code Playgroud)

这对我有用:

import * as Module from 'module';
Run Code Online (Sandbox Code Playgroud)

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

  • 天啊,幸运的是我发现了这个。多谢你们! (3认同)

Mic*_*ock 14

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

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

可以在此处找到有关此选项的更多信息

  • 这是使用 TypeScript 对纯 JavaScript 进行类型检查时唯一正确的选项。如果其他人遇到此问题,请记住在更新 tsconfig.json 后重新启动语言服务(VS Code:Ctrl/Cmd+Shift+P > TypeScript:重新启动 TSServer)(如果该选项似乎没有立即生效)。 (3认同)
  • 这应该是公认的答案 (2认同)

小智 10

使用:

import { Module } from 'module';
Run Code Online (Sandbox Code Playgroud)

您需要在{...}之间插入模块名称

  • 为什么???????????? (3认同)

tbo*_*o47 8

tsconfig.json我通过将其添加到我的角度项目中来修复它。

{
  ...
  "compilerOptions": {
    ...
    "allowSyntheticDefaultImports": true,
Run Code Online (Sandbox Code Playgroud)


Zee*_*mad 8

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

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

Run Code Online (Sandbox Code Playgroud)

  • 为我工作。奇怪的是这个答案的票数最少。 (2认同)