我正在Visual Studio 2019中将JavaScript文件升级为TypeScript,以便更好地管理它们。当我想从另一个文件导入一个模块时,我看到弯弯曲曲的线条抱怨:只能使用“esModuleInterop”标志默认导入x我该怎么解决这个问题?
sbtkgmzw1#
一个简单的解决方案是在tsconfig.json文件的compilerOptions中设置"esModuleInterop": true。示例:
tsconfig.json
compilerOptions
"esModuleInterop": true
{ "compilerOptions": { "esModuleInterop": true } }
5rgfhyps2#
我有同样的问题,并解决它如下:改变这个
import foo from 'foo';
到这个
import * as foo from 'foo';
13z8s7eq3#
我在使用Visual Studio“添加新项”功能添加TypeScript JSX文件(.tsx扩展名)后遇到了这个问题,即使我的tsconfig中有esModuleInterop=true。我的其他tsx模块都没有出现这个错误,我发现如果我添加一个新的文本文件并将其重命名为.tsx,错误就不会发生。经过一番搜寻,罪魁祸首似乎是由visual studio添加到csproj中的这些行
esModuleInterop=true
<ItemGroup> <None Remove="ClientApp\src\public\foo.tsx" /> </ItemGroup> <ItemGroup> <TypeScriptCompile Include="ClientApp\src\public\foo.tsx" /> </ItemGroup>
我从csproj中删除了它们,错误消失了
ltqd579y4#
在我的案例中,此解决方案帮助:必须将tsconfig.json文件的"生成操作"设置为"内容"。否则,自VS 2019起,Visual Studio将忽略此文件。找到了here
5sxhfpxr5#
TypeScript支持export =来建模传统的CommonJS和AMD工作流。export =语法指定从模块导出的单个对象。使用export =导出模块时,必须使用特定于TypeScript的import module = require(“module”)来导入模块。可以按如下方式导入模块:
import moduleName = require('moduleName');
请参考:https://www.typescriptlang.org/docs/handbook/modules.html#export--and-import--require
5条答案
按热度按时间sbtkgmzw1#
一个简单的解决方案是在
tsconfig.json
文件的compilerOptions
中设置"esModuleInterop": true
。示例:
5rgfhyps2#
我有同样的问题,并解决它如下:
改变这个
到这个
13z8s7eq3#
我在使用Visual Studio“添加新项”功能添加TypeScript JSX文件(.tsx扩展名)后遇到了这个问题,即使我的tsconfig中有
esModuleInterop=true
。我的其他tsx模块都没有出现这个错误,我发现如果我添加一个新的文本文件并将其重命名为.tsx,错误就不会发生。经过一番搜寻,罪魁祸首似乎是由visual studio添加到csproj中的这些行
我从csproj中删除了它们,错误消失了
ltqd579y4#
在我的案例中,此解决方案帮助:
必须将tsconfig.json文件的"生成操作"设置为"内容"。否则,自VS 2019起,Visual Studio将忽略此文件。
找到了here
5sxhfpxr5#
TypeScript支持export =来建模传统的CommonJS和AMD工作流。export =语法指定从模块导出的单个对象。使用export =导出模块时,必须使用特定于TypeScript的import module = require(“module”)来导入模块。
可以按如下方式导入模块:
请参考:https://www.typescriptlang.org/docs/handbook/modules.html#export--and-import--require