[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하고로 설정할 noImplicitAnyfalse있습니다.


답변

내가 이것을 어떻게 극복했는지 알고 싶어하는 사람들을 위해. 나는 일종의 해킹을했다.

내 프로젝트 @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-domtypescript를 사용하여 새 CRA 앱에 추가 할 때이 문제가 발생했습니다 . 을 추가 한 후 @types/react-router문제가 해결되었습니다.