ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TypeScript] useStrict을 사용해야 하나요? + readonly, 추론 가능한 타입, as const 단언문
    웹/TypeScript 2023. 3. 22. 12:34

    TypeScript useStrict을 사용해야 하나요? 

    결론을 먼저 말씀드리면 "아니요" 입니다. 

    그 이유는 Ts의 안전성 검사가 usestrict 보다 훨씬 엄격한 체크를 하기 때문입니다.

     

     

    useStrict

    "엄격한 사용" 또는 "엄격한 모드"는 ECMAScript 5(ES5)의 JavaScript에 도입된 기능으로 개발자가 더 엄격하고 안전한 언어 버전을 선택할 수 있습니다.

    JavaScript 파일 또는 함수의 맨 위에 "use strict"가 추가되면 이전 버전의 JavaScript에서 허용되었던 특정 작업을 제한하는 일련의 규칙이 활성화됩니다. 이러한 제한 사항은 다음과 같습니다.

    철자 오류를 포착하고 글로벌 네임스페이스 오염을 방지하는 데 도움이 되는 선언되지 않은 변수의 사용을 허용하지 않습니다.읽기 전용 속성 및 전역 개체의 재정의를 방지하여 보안을 향상시킵니다.함수 선언에서 중복 매개변수 이름을 허용하지 않아 코딩 오류를 포착하는 데 도움이 됩니다.예기치 않은 동작을 유발할 수 있는 "eval" 및 "arguments"와 같은 특정 키워드를 변수 이름으로 사용하는 것을 금지합니다.성능 문제를 일으키고 코드를 읽고 디버그하기 어렵게 만들 수 있는 "with" 문 사용을 금지합니다.

    이러한 제한 사항 외에도 "엄격한 사용"은 함수 호출 및 오류 처리에 대한 몇 가지 더 엄격한 규칙을 활성화합니다.

    전반적으로 "엄격한 사용"을 사용하는 것은 코드 품질, 보안 및 최신 JavaScript 엔진과의 호환성을 향상시키므로 좋은 방법입니다. 오류를 조기에 포착하고 코드를 보다 안정적으로 만들기 위해 모든 JavaScript 코드에서 사용하는 것이 좋습니다.

     

     

    readonly

    함수가 매개변수를 수정하지 않는다면 readonly로 선언하는 것이 좋다.

    interface를 명확하게 하여,

    매개변수가 변경되는 것을 방지하기 때문이다.

     

    function arraySpan (arr : readonly arr[]) {
    	return arr[1]
    }

     

    마지막으로 주목해야 할 사항은 속성 수정자와 달리 할당 가능성이 일반 s와 s readonly사이에서 양방향이 아니라는 것입니다 .ArrayReadonlyArray

    let x: readonly string[] = [];
    let y: string[] = [];
     
    x = y;
    y = x;
    The type 'readonly string[]' is 'readonly' and cannot be assigned to the mutable type 'string[]'.
     
     

    추론 가능한 타입

    추론 가능한 타입의 경우는 타입을 생략하는 것이 좋다.

    let n = 12 (O)
    let n : number = 12 (▲) 
    // 충분히 추론 가능한 타입이기 때문이다.

     

     

     

    as const 단언문

     

    const vl = {
    	x : 1 as const,
       	y : 2 }
    // ul의 타입 : { x : 1, y : number}
    
    
    const v2 = {
    	x : 1,
        	y : 2, 
    } as const
    //v2의 타입 : { readonly x :1, readonly y:2 }

     

Designed by Tistory.