我一直在学习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"
]
}
答案 0 :(得分:1)
这是因为macOS默认情况下在其文件系统中使用不区分大小写的文件名。这会混淆TypeScript。在文件名区分大小写的环境中,这将导致致命错误-无法找到该文件。
解决方案是只使用与路径相同的大小写:
import MainNav from "../components/layout/MainNav/MainNavBar";