tsconfig.json [Type Checking]

juunini·2021년 8월 25일
2

tsconfig.json

목록 보기
2/8
post-thumbnail

최종 수정일 : 2021년 8월 26일

!주의 이 문서는 유익하지 않습니다(?).

공식 문서에서 사용 할 것을 권장하는 설정에는 * 표시를 해두었습니다.

목차

allowUnreachableCode
allowUnusedLabels
*alwaysStrict
*exactOptionalPropertyTypes
noFallthroughCasesInSwitch
*noImplicitAny
noImplicitOverride
noImplicitReturns
*noImplicitThis
noPropertyAccessFromIndexSignature
noUncheckedIndexedAccess
noUnusedLocals
noUnusedParameters
**strict
*strictBindCallApply
*strictFunctionTypes
*strictNullChecks
*strictPropertyInitialization
useUnknownInCatchVariables

strict mode family

*alwaysStrict
*strictNullChecks
*strictBindCallApply
*strictFunctionTypes
*strictPropertyInitialization
*noImplicitAny
*noImplicitThis
useUnknownInCatchVariables

전부 사용합시다

{
  "compilerOptions": {
    "strict": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "exactOptionalPropertyTypes": true,
    "noFallthroughCasesInSwitch": true,
    "noImplicitOverride": true,
    "noImplicitReturns": true,
    "noPropertyAccessFromIndexSignature": true,
    "noUncheckedIndexedAccess": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true
  }
}

Options

allowUnreachableCode

원본 링크

  • undefined (default) 에디터에 변경 할 것을 권장하는 경고를 발생시킵니다.
  • true 무시합니다.
  • false 도달하지 않는 코드가 발생하면 컴파일 에러를 발생시킵니다.

allowUnusedLabels

원본 링크

  • undefined (default) 에디터에 변경 할 것을 권장하는 경고를 발생시킵니다.
  • true 무시합니다.
  • false 사용하지 않은 label이 있으면 컴파일 에러를 발생시킵니다.

alwaysStrict

strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.

원본 링크

파일을 ECMAScript 엄격 모드로 분석 하고, 각 소스 파일에 “use strict”를 생성합니다.

exactOptionalPropertyTypes

공식 문서에서 사용 할 것을 권장하고 있습니다.

원본 링크

optional properties를 허용하지 않습니다.

대신 기본값을 입력하도록 권장하고 있습니다.

noFallthroughCasesInSwitch

원본 링크

사용하지 않으면 숨은 버그 찾기를 할 수 있다.

switch문의 내부에 비어있지 않은 모든 케이스에 대해 break를 사용하도록 강제합니다.
fall through를 발생시키지 않도록 방지합니다.

noImplicitAny

strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.

원본 링크


애니쨔응을 좋아하는 녀석은 죽인다.

타입을 명시하지 않았을 때 any 로 추론하게 되면 에러를 발생시킵니다.

noImplicitOverride

원본 링크

부모 클래스의 method를 덮어 쓸 시 method 앞에 override 라고 명시해야 합니다.

noImplicitReturns

원본 링크

리턴할 타입을 선언했다면 반드시 리턴해야 합니다.

noImplicitThis

strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.

원본 링크

암시적 any 유형이 있는 this 표현식에서 에러를 발생시킵니다.

noPropertyAccessFromIndexSignature

원본 링크

정의되지 않은 필드에 엑세스를 시도하면 에러를 발생시킵니다.
아래 예제의 settings.username 에 접근하려고 한다면 settings['username'] 을 사용해야 합니다.

noUncheckedIndexedAccess

원본 링크

정의되지 않은 필드에 대해 undefined 속성을 추가합니다.

noUnusedLocals

원본 링크

사용하지 않는 지역 변수에 대해 에러를 발생시킵니다.

noUnusedParameters

원본 링크

함수에서 사용하지 않는 매개변수에 대한 에러를 발생시킵니다.

strict

공식 문서에서 사용 할 것을 권장하고 있습니다.

원본 링크


이런 코드를 안보려면 활성화하자

*alwaysStrict
*strictNullChecks
*strictBindCallApply
*strictFunctionTypes
*strictPropertyInitialization
*noImplicitAny
*noImplicitThis
useUnknownInCatchVariables

strict mode family를 전부 활성화 시킵니다.

strictBindCallApply

strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.

원본 링크

함수의 기본 method인 call, bind, apply 를 사용할 시 올바른 타입을 사용하도록 강제합니다.

strictFunctionTypes

strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.

원본 링크

함수 매개변수가 더 정확하게 검사됩니다.

이 설정 은 method 구문이 아닌 function 구문으로 작성된 함수에만 적용됩니다.

strictNullChecks

strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.

원본 링크

null 또는 undefined 가 생길 수 있는 부분에 에러를 발생시킵니다.

strictPropertyInitialization

strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.

원본 링크

클래스 속성이 선언되었지만 생성자에서 설정되지 않은 경우 에러가 발생합니다.

useUnknownInCatchVariables

strict mode family

원본 링크

any나 unknown 타입이 catch를 통해 넘어올 것을 대비해 아래와 같은 catch 문을 허용합니다.

throw 되는 객체의 타입을 보장할 수 없기 때문에 에러 처리를 포괄적으로 할 수 있도록 합니다.

profile
Full StackOverFlow

0개의 댓글