내가 보려고 만든 개발 공부 일지

Typescript 타입추론 & 타입단언 본문

Typescript

Typescript 타입추론 & 타입단언

kwangsunny 2021. 7. 2. 02:27

TS 타입이 예상 가능할땐 굳이 타입선언을 안해도 된다. 컴파일러가 타입추론을 하기 때문이다.

그치만 일반적으로 타입을 항상 선언해 준다. 그리고 타입에 따라 해당 변수의 속성값을 쓰려고할때 컴파일러 에러가 발생할 수도 있다.

document.body.onclick = (e: MouseEvent): void=>{
  e.currentTarget!.nodeName;
}

위와같은 코드가 있다고 , 컴파일러는 currentTarget nodeName 가지고 있지 않는다는 에러를 낸다.

나는 currentTarget에 어떤 엘리먼트가 올지 이미 알고 있지만, TS 컴파일러는 값이 정확히 뭔지 몰라서 타입추론을 못하기 때문이다.

이럴때 확실하게 컴파일러에게 타입을 알려주는 방법이있다.

const targ = e.currentTarget as HTMLDivElement;

이런 식으로 as 사용하여 타입이 뭔지 명시해주는 것이다.

그러나 as 는 any 와 마찬가지로 지양하는것이 좋다. 왜냐면 저들을 남발하게되면 굳이 TS 쓰는 이유가 없어지기 때문이다.

따라서 필요한 경우에만 쓰자.

'Typescript' 카테고리의 다른 글

Typescript - 매번 null , undefined 체크의 귀찮음  (0) 2021.07.02
Interface vs Type  (0) 2021.07.02
Comments