如何防止 VS 2022 在 esproj 中显示带有 d.ts 文件的打字稿错误
Posted
技术标签:
【中文标题】如何防止 VS 2022 在 esproj 中显示带有 d.ts 文件的打字稿错误【英文标题】:How do I prevent VS 2022 to display typescript errors with d.ts files in esproj 【发布时间】:2022-01-18 12:14:48 【问题描述】:我在 Visual Studio 2022 下为我的 SPA 创建了一个项目 (.esproj)。 它构建得很好,但 Visual Studio 显示了很多错误(仅在来自项目的 node_modules 的 .dt.ts 文件以及本地安装在 AppData 中的 Typescript 文件中)。
错误未显示在 VS Code 上,但理想情况下我会为此使用 Visual Studio 2022。
这是我的esproj
<Project Sdk="Microsoft.VisualStudio.javascript.Sdk/0.5.0-alpha">
<PropertyGroup Label="Globals">
<ProjectGuid>6b86a87b-eb34-43fe-9cbb-99a2e3db4e41</ProjectGuid>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<StartupCommand>set BROWSER=none&&npm start</StartupCommand>
<JavaScriptTestRoot>src\</JavaScriptTestRoot>
<JavaScriptTestFramework>Jest</JavaScriptTestFramework>
</PropertyGroup>
<ItemGroup>
<Script Include="**" Exclude="*.esproj;**\node_modules\**" />
</ItemGroup>
<!-- This target is copied from the ASP.NET SPA template in order to ensure node_modules are in place. -->
<Target Name="DebugEnsureNodeEnv" BeforeTargets="Build" Condition=" '$(Configuration)' == 'Debug' And !Exists('$(SpaRoot)node_modules') ">
<!-- Ensure Node.js is installed -->
<Exec Command="node --version" ContinueOnError="true">
<Output TaskParameter="ExitCode" PropertyName="ErrorCode" />
</Exec>
<Error Condition="'$(ErrorCode)' != '0'" Text="Node.js is required to build and run this project. To continue, please install Node.js from https://nodejs.org/, and then restart your command prompt or IDE." />
<Message Importance="high" Text="Restoring dependencies using 'npm'. This may take several minutes..." />
<Exec WorkingDirectory="$(SpaRoot)" Command="npm install --legacy-peer-deps" />
</Target>
</Project>
这里是我的 tsconfig.json
"compilerOptions":
"baseUrl": ".",
"target": "ESNext",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
,
"include": [
"src"
],
"exclude": [
"node_modules"
]
知道如何将 Visual Studio 2022 配置为不在 .d.ts 上运行分析器吗?
提前致谢
【问题讨论】:
同样,构建时出现 322 个错误,全部来自 node_modules。更糟糕的是我绝对不会在 VS 中编译任何打字稿,webpack 会处理所有这些。 【参考方案1】:更换有效载荷部分
<ItemGroup>
<Script Include="**" Exclude="*.esproj;**\node_modules\**" />
</ItemGroup>
通过
<ItemGroup>
<Script Include="**"/>
<Script Remove="**.d.ts"/>
</ItemGroup>
似乎解决了我的问题
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于如何防止 VS 2022 在 esproj 中显示带有 d.ts 文件的打字稿错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Resharper 准确找出哪个规则将语法突出显示应用于 VS2022 中的特定代码元素?