최종 수정일 : 2021년 8월 26일
!주의 이 문서는 유익하지 않습니다(?).
공식 문서에서 사용 할 것을 권장하는 설정에는 * 표시를 해두었습니다.
allowUnreachableCode
allowUnusedLabels
*alwaysStrict
*exactOptionalPropertyTypes
noFallthroughCasesInSwitch
*noImplicitAny
noImplicitOverride
noImplicitReturns
*noImplicitThis
noPropertyAccessFromIndexSignature
noUncheckedIndexedAccess
noUnusedLocals
noUnusedParameters
**strict
*strictBindCallApply
*strictFunctionTypes
*strictNullChecks
*strictPropertyInitialization
useUnknownInCatchVariables
*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
}
}
undefined
(default) 에디터에 변경 할 것을 권장하는 경고를 발생시킵니다.true
무시합니다.false
도달하지 않는 코드가 발생하면 컴파일 에러를 발생시킵니다.undefined
(default) 에디터에 변경 할 것을 권장하는 경고를 발생시킵니다.true
무시합니다.false
사용하지 않은 label이 있으면 컴파일 에러를 발생시킵니다.strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.
파일을 ECMAScript 엄격 모드로 분석 하고, 각 소스 파일에 “use strict”를 생성합니다.
공식 문서에서 사용 할 것을 권장하고 있습니다.
optional properties를 허용하지 않습니다.
대신 기본값을 입력하도록 권장하고 있습니다.
사용하지 않으면 숨은 버그 찾기를 할 수 있다.
switch문의 내부에 비어있지 않은 모든 케이스에 대해 break
를 사용하도록 강제합니다.
fall through를 발생시키지 않도록 방지합니다.
strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.
애니쨔응을 좋아하는 녀석은 죽인다.
타입을 명시하지 않았을 때 any
로 추론하게 되면 에러를 발생시킵니다.
부모 클래스의 method를 덮어 쓸 시 method 앞에 override
라고 명시해야 합니다.
리턴할 타입을 선언했다면 반드시 리턴해야 합니다.
strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.
암시적 any
유형이 있는 this
표현식에서 에러를 발생시킵니다.
정의되지 않은 필드에 엑세스를 시도하면 에러를 발생시킵니다.
아래 예제의 settings.username
에 접근하려고 한다면 settings['username']
을 사용해야 합니다.
정의되지 않은 필드에 대해 undefined
속성을 추가합니다.
사용하지 않는 지역 변수에 대해 에러를 발생시킵니다.
함수에서 사용하지 않는 매개변수에 대한 에러를 발생시킵니다.
공식 문서에서 사용 할 것을 권장하고 있습니다.
이런 코드를 안보려면 활성화하자
*alwaysStrict
*strictNullChecks
*strictBindCallApply
*strictFunctionTypes
*strictPropertyInitialization
*noImplicitAny
*noImplicitThis
useUnknownInCatchVariables
strict mode family를 전부 활성화 시킵니다.
strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.
함수의 기본 method인 call
, bind
, apply
를 사용할 시 올바른 타입을 사용하도록 강제합니다.
strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.
함수 매개변수가 더 정확하게 검사됩니다.
이 설정 은 method 구문이 아닌 function 구문으로 작성된 함수에만 적용됩니다.
strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.
null
또는 undefined
가 생길 수 있는 부분에 에러를 발생시킵니다.
strict mode family
공식 문서에서 사용 할 것을 권장하고 있습니다.
클래스 속성이 선언되었지만 생성자에서 설정되지 않은 경우 에러가 발생합니다.
strict mode family
any나 unknown 타입이 catch를 통해 넘어올 것을 대비해 아래와 같은 catch 문을 허용합니다.
throw 되는 객체의 타입을 보장할 수 없기 때문에 에러 처리를 포괄적으로 할 수 있도록 합니다.