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

时间:2016-11-04 18:52:33

标签: angular angular2-modules

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

8 个答案:

答案 0 :(得分:122)

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

答案 1 :(得分:17)

接受的答案对我没有用,所以我发布了更多信息。

我有:

import Module from 'module';

这对我有用:

import * as Module from 'module';

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

答案 2 :(得分:3)

使用:

import { Module } from 'module';

您需要在 {...}

之间插入模块名称

答案 3 :(得分:1)

对我来说,该问题是通过项目tsconfig.json中"allowSyntheticDefaultImports": true中的compilerOptions解决的。

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

有关此选项的更多信息,请found here

答案 4 :(得分:0)

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

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

module.ts将具有:

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

答案 5 :(得分:0)

以上所有答案都无法解决我的错误。下面的解决方案为我工作。在此之前,我已经在命令下运行

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

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

import * as moment from "moment-timezone";

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

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

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

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