如何防止 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&amp;&amp;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 中的特定代码元素?

如何在 vs 代码版本控制中停止全行突出显示?

如何防止喷气背包组合脚手架在对话框中显示时占据屏幕的整个高度

防止在 VS Code 中包装内联 CSS 行

如何防止在 WooCommerce 电子邮件通知中运行挂钩

vs2022一直显示正在加载设计器