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