打字稿反应-奇怪的组件导入问题

时间:2020-01-31 09:35:48

标签: reactjs typescript

我一直在学习React中的打字稿,并且不断遇到这些奇怪的导入问题。这与我所有的组件导入有关。

这是一个简单的导入:

import MainNav from "../components/layout/mainNav/MainNavBar";

以及导入内容:

import React from "react";
import classNames from "classnames";

const MainNavBar:React.SFC = () => {
  const classes = classNames (
    "main-navbar",
    "bg-white"
  );
  return (
    <div className={classes}>
        <nav>
          <li>Item 1</li>
          <li>Item 2</li>
        </nav>
    </div>
  );
}

export default MainNavBar;

这是给我的错误图像。我不明白我在问什么。在打字稿之前,我从未遇到过这些问题。与配置文件有关吗?

我的tsconfig:

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react"
  },
  "include": [
    "src"
  ]
}

enter image description here

1 个答案:

答案 0 :(得分:1)

这是因为macOS默认情况下在其文件系统中使用不区分大小写的文件名。这会混淆TypeScript。在文件名区分大小写的环境中,这将导致致命错误-无法找到该文件。

解决方案是只使用与路径相同的大小写:

import MainNav from "../components/layout/MainNav/MainNavBar";