【发布时间】:2020-10-27 09:25:57
【问题描述】:
我正在使用 Visual Studio 2019 和 TypeScript 3.9。
在创建一些新的 tsx 文件时,我继续处理 React/.NET 项目时,Intellisence 显示了一些错误,例如:
TS1259: [...] can only be default-imported using the 'esModuleInterop' flagTS2307: can not find module [...]
前者只出现在新文件中,后者出现在index.d.ts 文件中,该文件自上次工作以来没有修改过。
我已验证:
- 目标是正确的 tsconfig 文件(项目只包含一个)。
- 我将 tsconfig 文件的构建设置从“无”设置为“内容”。
即使删除 .vs 文件夹并重新启动 VS 也无法正常工作。
编辑:"esModuleInterop": true 也经过验证。
编辑:重现步骤:
- 安装 VS 2019 和 Node。
- 在 VS2019 中新建一个 React/.NET Core 项目。
-
- 使用 npm upgrade react-scripts --latest 将反应脚本升级到最新版本
- 使用 npm remove eslint eslint-config-react-app eslint-plugin-flowtype eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react 删除所有 eslint 软件包¹
- 安装或升级 TypeScript
- 要安装 TypeScript,请使用 npm install typscript --latest --save-dev
- 或者如果您已经安装了 TypeScript,您可以使用 npm upgrade TypeScript --latest 进行升级
- 使用 npm install @types/node @types/react @types/react-dom @types/react-router 安装 TypeScript 定义文件
- 创建以下 tsconfig 文件:
"include": [
"src/*"
],
"compilerOptions": {
"target": "es5",
"jsx": "react",
"allowSyntheticDefaultImports": true,
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true
}
}
- 创建一个新的 .tsx 文件并安装和导入一些包:
import React, { Component } from 'react';
import * as microsoftTeams from "@microsoft/teams-js";
import { Button } from "@fluentui/react-northstar";
import { AuthenticationContext, adalFetch, withAdalLogin } from 'react-adal';
它可能会也可能不会导致 TS2307 错误。
【问题讨论】:
-
您是否在新的 tsx 文件中写入了零件的任何导入节点?
标签: typescript visual-studio-2019 intellisense