React Native 고정 Typescript 문제: "'Timeout' 유형을 'number' 유형에 할당할 수 없습니다."

React Native 프로젝트에서 이 유형 스크립트 문제가 쉽게 발생할 수 있습니다(예: RN을 최신 버전으로 업데이트한 후).

전역 함수에 대한 올바른 tygin은 lib 정의에서 제공하지만 다음과 같습니다.

declare function setTimeout(handler: () => void, timeout: number): number;
declare function setTimeout<Args extends any[]>(
    handler: (...args: Args) => void,
    timeout?: number,
    ...args: Args
): number;


Source: types/react-native/globals.d.ts



주요 문제는 @type/node 전역 유형이 @type/react-native 전역 유형을 대체한다는 것입니다.

기본적으로 typescript는 다음과 같이 작동합니다.

All visible ”@types” packages are included in your compilation.




자, 그러면 실제로 필요한 전역 유형 지정만 지정하겠습니다( tsconfig.json ).

{
  "compilerOptions": {
    "types": ["react-native", "jest"]
  }
}


수정 후compilerOptions.types nodejs 입력이 제외됩니다.

더 읽어보기:
  • https://www.typescriptlang.org/tsconfig#types
  • 좋은 웹페이지 즐겨찾기