102

我创建了一个新模块“A”并尝试将其导入另一个名为“B”的模块中。我在编译时收到这个错误,上面写着

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

谁能帮忙解决这个错误。

4

8 回答 8

256

这是一个简单的错误。这是由于 import 语句本身的模块名称周围缺少 {} 而发生的。由于这杀死了我 2-3 个小时的时间,因此与大家分享,以免浪费您的时间。希望这可以帮助某人。干杯,阿比。

于 2016-11-04T19:33:29.067 回答
103

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

我有:

import Module from 'module';

这对我有用:

import * as Module from 'module';

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

于 2018-05-22T17:16:07.643 回答
22

利用:

import { Module } from 'module';

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

于 2019-04-16T08:15:55.553 回答
18

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

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

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

于 2019-11-19T11:47:24.293 回答
3

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

{
  ...
  "compilerOptions": {
    ...
    "allowSyntheticDefaultImports": true,
于 2021-05-18T20:21:31.653 回答
2

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

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

module.ts然后会有:

module.exports = class Module {
    ... your module code
}
于 2019-12-13T15:38:56.777 回答
0

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

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

于 2021-07-25T11:43:29.880 回答
0

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

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

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

import * as moment from "moment-timezone";

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

于 2020-10-02T16:49:58.923 回答