[reactjs] Typescript react- ”react-materialize ‘모듈에 대한 선언 파일을 찾을 수 없습니다. ‘path / to / module-name.js’에는 암시 적으로 모든 유형이 있습니다.
react-materialize에서 구성 요소를 가져 오려고합니다.
import {Navbar, NavItem} from 'react-materialize';
그러나 웹팩이 내 컴파일을 할 때 .tsx
위와 같은 오류가 발생합니다.
ERROR in ./src/common/navbar.tsx
(3,31): error TS7016: Could not find a declaration file for module 'react-materi
alize'. 'D:\Private\Works\Typescript\QuickReact\node_modules\react-materialize\l
ib\index.js' implicitly has an 'any' type.
이 ts-loader
.I에 대한 해결 방법이 가져 오기 문을 해결 하고 webpack 을 사용하는 방법을 잘 모르겠습니다.
index.js
반응-구체화 된 모습의이를 좋아한다. 그러나 내 자신의 파일에서 모듈 가져 오기를 해결하는 방법 ..
https://github.com/react-materialize/react-materialize/blob/master/src/index.js
답변
비슷한 오류가 있었지만 나에게는 react-router
. 유형을 설치하여 해결했습니다.
npm install --save @types/react-router
오류:
(6,30): error TS7016: Could not find a declaration file for module 'react-router'. '\node_modules\react-router\index.js' implicitly has an 'any' type.
사이트 전체에서 비활성화하려면 대신 편집 tsconfig.json
하고로 설정할 noImplicitAny
수 false
있습니다.
답변
내가 이것을 어떻게 극복했는지 알고 싶어하는 사람들을 위해. 나는 일종의 해킹을했다.
내 프로젝트 @types
에서 필요한 모든 유형을 찾기 위해 폴더를 만들고 tsconfig.json에 추가했습니다. 그래서 다소 이렇게 보입니다.
"typeRoots": [
"../node_modules/@types",
"../@types"
]
그리고 그 안에 alltypes.d.ts
. 그것에서 알 수없는 유형을 찾으려면. 그래서 저에게는 이것이 알려지지 않은 유형이었고 거기에 추가했습니다.
declare module 'react-materialize';
declare module 'react-router';
declare module 'flux';
이제 typescript는 더 이상 찾을 수없는 유형에 대해 불평하지 않았습니다. 🙂 지금 승리 상황 🙂
답변
react-redux 유형과 동일한 문제가 있습니다. 가장 간단한 해결책은 tsconfig.json에 추가하는 것입니다.
"noImplicitAny": false
예:
{
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"isolatedModules": true,
"jsx": "react",
"lib": ["es6"],
"moduleResolution": "node",
"noEmit": true,
"strict": true,
"target": "esnext",
"noImplicitAny": false,
},
"exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js"]
}
답변
@types/<package>
사용중인 모듈 이없는 경우 // @ts-ignore
위에 설명 을 추가하여 문제를 쉽게 피할 수 있습니다.
// @ts-ignore
import { Navbar, NavItem } from 'react-materialize';
또는 누락 된 항목을 만들 수 있습니다. @types/<package>
다음을 .
답변
제 경우에는 반응에 문제가있어서 다음을 시작했습니다.
npm install @types/react
그런 다음
npm install @types/react-dom
이것은 나를 위해 일했습니다.
답변
아래 스크립트를 실행하기 만하면됩니다. 그런 다음 사용하려는 모듈을 제거 / 재설치하십시오.
npm install --save @types/react-redux
답변
react-router-dom
typescript를 사용하여 새 CRA 앱에 추가 할 때이 문제가 발생했습니다 . 을 추가 한 후 @types/react-router
문제가 해결되었습니다.