我似乎对此质量检查有一个相反问题:Typescript Global Variable across Files-我项目中的TypeScript编译器似乎总是在不相关的*.ts
文件中使用全局范围。
我正在将Visual Studio 2017与TypeScript 3.1 SDK一起用于ASP.NET Core 2.2项目中。
我有各种特殊的TypeScript文件,它们在保存时生成*.js
输出,并且某些页面引用了这些*.js
文件。
这些TypeScript文件是不相关的,但是对于某些事件处理程序,它们具有相同的函数名,而TypeScript会抱怨。我注意到一个文件中的IntelliSense可“查看”同一项目中其他*.ts
文件中的声明和类型。两个TypeScript文件中都没有/// <references
标头。
例如:
window.addEventListener( 'DOMContentLoaded', afterLoad );
function afterLoad( e: Event ) {
// do stuff
}
<head>
<script src="~/AccountEditPage.js" async="async" type="text/javascript"></script>
</head>
window.addEventListener( 'DOMContentLoaded', afterLoad );
function afterLoad( e: Event ) {
// do stuff
}
<head>
<script src="~/ProductEditPage.js" async="async" type="text/javascript"></script>
</head>
我的项目中没有tsconfig.json
,但是我的MyWebProject.csproj
具有此功能(为便于阅读而添加了空格):
<PropertyGroup>
<!-- etc -->
<TypeScriptToolsVersion> 3.1 </>
<TypeScriptTarget> ES5 </>
<TypeScriptJSXEmit> None </>
<TypeScriptModuleKind> None </>
<TypeScriptCompileOnSaveEnabled> True </>
<TypeScriptNoImplicitAny> True </>
<TypeScriptRemoveComments> False </>
<TypeScriptOutFile />
<TypeScriptOutDir />
<TypeScriptGeneratesDeclarations> False </>
<TypeScriptNoEmitOnError> True </>
<TypeScriptSourceMap> True </>
<TypeScriptMapRoot />
<TypeScriptSourceRoot />
</PropertyGroup>
<!-- etc -->
<ItemGroup>
<Content Remove="wwwroot\AccountEditPage.ts" />
<Content Remove="wwwroot\ProductEditPage.ts" />
</ItemGroup>
<ItemGroup>
<TypeScriptCompile Include="wwwroot\AccountEditPage.ts" />
<TypeScriptCompile Include="wwwroot\ProductEditPage.ts" />
</ItemGroup>
我看不到“所有文件共享全局范围”的任何选项。