진화적으로 TS 플래그를 켭니다.

2448 단어 typescriptfrontedbash

소개



JavaScript 프로젝트를 TypeScript로 마이그레이션한 후 일부compilerOptions 플래그를 켜는 것이 좋습니다. 그들 중 일부는 strictBindCallApply과 같이 쉽지만 예를 들어 strictNullChecks은 많은 오류를 발생시킬 수 있습니다. 반면에 이 마이그레이션이 없으면 strictNullChecks 오류의 양이 증가할 수 있습니다.

불행히도 프로젝트의 일부에서만 compilerOptions 플래그를 설정할 방법이 없습니다. 그러나 이러한 오류의 양을 추적할 수 있습니다.

구현




"scripts": {
  "typeCheck": "tsc",
  "typeCheck:checkNulls": "tsc --strictNullChecks true"
}


이제 얼마나 많은 오류가 있는지 확인할 수 있습니다. 물론 이 스크립트는 항상 실패하므로 CI 프로세스에 추가할 수 없습니다. 이를 추가하려면 몇 가지 파이프를 추가해야 합니다.

yarn typeCheck:checkNulls | grep error | wc -l


Grep은 Found 649 errors in 184 files. 없이 파일을 필터링하고 error는 오류가 있는 줄을 숫자로 줄입니다. 그런 다음 간단한wc -l 작업을 통해 오류 양이 증가하지 않았는지 확인합니다. bash에서는 다음과 같이 보입니다.

if [ $(yarn typeCheck:checkNulls | grep error | wc -l) -gt 649 ]; then exit 1; fi


요약



이 솔루션은 완벽하지 않습니다. 예를 들어 이전 오류를 수정한 다음 새 오류를 생성하면 CI가 오류를 포착하지 않습니다. 또한 IDE는 > 플래그가 false로 설정되어 있으므로 strictNullChecks 오류에 대해 알리지 않습니다. 이 경우 단순성이 주요 이점입니다. tsconfig.json에 한 줄, CI 구성에 한 줄입니다. 그러나 대안과 비교하면 한 번에 모두 마이그레이션하거나 프로젝트에서 모듈을 분리하는 것이 그렇게 나쁘게 보이지 않습니다.

좋은 웹페이지 즐겨찾기