솔미는 성장중

[TS] 타입 단언 본문

TypeScript

[TS] 타입 단언

solming 2023. 8. 30. 18:29
728x90

💻 타입 단언

: 타입 추론에 기대지 않고 개발자가 직접 타입을 명시해 해당 타입으로 강제하는 것

 

 

💻 타입 단언 문법

1. 대상

원시 값 & 변수 & 함수 호출 결과 ...

 

사용 예시) 빈 객체 선언 후 속성을 추가했을 때 타입에러 발생. 이때 해당 속성을 담은 인터페이스로 타입 단언

 

2. 타입 단언 중첩

- 여러번 중첩 가능

 

3. 주의할 점

- as는 변수명에 사용 불가 ex) let num as number = 10; (x)

- 호환되지 않는 데이터 타입으로는 단언 불가 ex) let num = 10 as string; (x)

 

 

💻 null 아님 보장 연산자 : !

1. 대상

null이 들어와 오류가 발생하는 것을 방지하기 위해 함수 내에 null 값 체크 코드를 작성해줘야했다.

예시)

if( books === null || books === undefined) {
  return;
}

 

하지만 이러한 null 체크 로직을 넣는 것은 번거롭기 때문에 값이 null이 아니라는 확신이 있다면 null 아님 보장 연산자를 사용하자! 

 

주의할 점 : 타입 관점에서 null이 아니라고 보장할 뿐 실제 실행할 때 null 값이 들어오면 실행 에러가 발생한다.

 

as 나 !를 사용한 타입 단언은 편리하지만 실행시점의 에러를 막아주지 않기 때문에 타입 추론에 의지하는 것이 좋다!

 

 

cf) 할당 단언 (Assertion)

할당했다고 단언하는 것

let num: number;
console.log(num) //error

let num!: number;
console.log(num) //undefined

 

728x90