JS & TS/TypeScript

[TypeScript] 타입 제한자

Bay Im 2024. 2. 15. 09:17
  • top 타입 (any, unknown)
    • top 타입은 모든 타입이 할당 가능한 타입
    • any
      • TS가 해당 값에 할당 가능성 또는 멤버에 대해 타입 검사를 수행하지 않도록 명시적으로 지시 (타입 아직 미정의)
      • const anyParam = (value: any) ⇒ { … }
        • 위 함수는 오류는 발생하지 않지만 런타임 에러 발생
    • unknown
      • unknown 타입 값의 속성에 직접 접근할 수 없고 top 타입이 아닌 타입에는 할당할 수 없다.
      • const anyParam = (value: unknown) ⇒ { … }
      • instanceof나 typeof를 사용하여 타입을 narrowing 하거나 타입 어서션을 통해 값의 타입이 제한된 경우에 해당 타입이 갖는 속성에 접근할 수 있다.
        • const anyParam = (value: unknown) => {
          	if (typeof value === 'string') {
          		...
          	}
          }
  • 타입 서술어
    • isString() 함수처럼 인자가 특정 타입인지 여부를 나타내기 위해 boolean 값을 반환하는 함수를 위한 구문
      • const isString = (value: unknown): value is string =>
        	typeof value === 'string';
  • 타입 연산자 - typeof
    • 제공되는 값의 타입 반환
      • const customer1 = {
        	name: 'Im',
        	mobile: '8282',
        };
        
        // {name: string, mobile: string} 반환
        let customer: typeof customer1;
  • 타입 연산자 - keyof
    • 존재하는 타입의 키를 바탕으로 유니언 타입 생성
      • const f3 = (customer: 객체, key: keyof 객체) => { … }
    • 제공되는 값에 존재하는 키만 매개변수의 타입으로 허용하고 싶을 때 typeof 함께 사용
      • const 변수 = (key: keyof typeof 객체)=> 객체[key];
  • 타입 어서션 (as)
    • 값의 타입을 재정의 (확신할 수 있는 경우에만)
      • const 변수 = JSON.parse(someData) as 객체;
  • non-null 어서션
    • null 또는 undefined를 포함할 수 있는 변수에서 null과 undefined를 제거한다. (느낌표)
      • const jang = 배열.find((a) => a.name === 'jang');
      • let 변수: number = jang**!**.age;
728x90

'JS & TS > TypeScript' 카테고리의 다른 글

[TypeScript] 선언 파일과 구성 및 옵션, 타입 운영  (0) 2024.02.15
[TypeScript] Generic  (0) 2024.02.15
[TypeScript] Class  (0) 2024.02.13
[TypeScript] Interface  (0) 2024.02.13
[TypeScript] Array, Tuple  (0) 2024.02.13