티스토리 뷰

개발/타입스크립트

Narrowing, Assertion

네스사 2023. 4. 19. 23:33

Narrowing


  • Narrowing이란 복수의 타입이 지정될 때, 변수나 표현식의 타입을 보다 구체적인 타입으로 한정하는 것입니다.
  • 주로 if문에 typeof를 사용해 특정 타입일 때만 실행되도록 코드를 작성합니다.
function 내함수(x :number | string){ //x 는 number 혹은 string 타입
  if (typeof x === 'number') {//x가 number일때만 작동 
    return x + 1
  } 
  else if (typeof x === 'string') {//x가 string일때만 작동 
    return x + 1
  }
  else {
    return 0
  }
}
  • Narrowing을 사용하면 코드의 가독성을 높일 수 있고, 컴파일러가 더 정확한 타입 검사를 수행할 수 있습니다.

 

 

 

Assertion


  • Assertion은 타입스크립트에서 타입을 강제로 지정하는 것으로, 컴파일러에게 특정 값이 어떤 타입인지 강제로 지정할 수 있습니다.
  • 변수나 표현식의 뒤에 as와 타입을 붙여서 사용합니다.
  • 다만, 강제로 지정할 뿐 실제로 해당 타입으로 변환되는 것이 아니기에 오류가 발생할 가능성이 높아 잘 사용되지 않습니다.
function 내함수(x :number | string){ 
    return (x as number) + 1 //x가 number라고 강제로 확정
}
console.log( 내함수(123) )
  • as 키워드는 union type 같은 복잡한 타입을 하나의 정확한 타입으로 줄이는 역할을 수행할 수 있습니다.
  • 혹은 임시로 에러해결용으로 사용하거나 특정 타입이 올거라 확신할 때 사용합니다

'개발 > 타입스크립트' 카테고리의 다른 글

타입스크립트로 HTML 변경과 조작할 때 주의점  (0) 2023.04.20
Literal Types  (0) 2023.04.20
type alias  (0) 2023.04.19
타입스크립트 선언  (0) 2023.04.12
타입스크립트 개요  (0) 2023.04.12
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함