TS_type assertion

jhson·2024년 2월 14일
0

typescript

목록 보기
7/7

type assertion (타입 표명)

  • 타입 스크립트에서는 시스템이 추론 및 분석한 타입 내용을 우리가 원하는 대로 얼마든지 바꿀 수 있음
  • 이때 type assertion(타입 표명) 이라는 메커니즘을 사용함
  • 타입 스크립트의 타입 표명은 프로그래머가 컴파일러에게 내가 너보다 타입을 더 잘 알고 있고 나의 주장에 대해 의심하지 말라고 하는 것과 같음
  • 타입 표명을 사용하면 값의 type을 설정하고 컴파일러에 이를 유추하지 않도록 지시할 수 있음
  • 이는 프로그래머가 타입 스크립트가 자체적으로 추론할 수 있는 것보다 변수 유형에 대해 더 잘 알고 있을 때임

사용 예시

var foo = {};
foo.bar = 123; //오류 발생: 속성 'bar'가 '{}'에 존재하지 않음
foo.bas = 'hello'; //오류 발생: 속성 'bar'가 '{}'에 존재하지 않음
  • 컴파일러는 foo type이 속성이 없는 {} 라고 가정
  • 따라서 컴파일러 오류 발생함
  • 이 경우 type assertion을 사용
interface Foo {
	bar: number;
    bas: string;
}
var foo = {} as Foo;
foo.bar = 123;
foo.bas = 'hello';

as Foo or <Foo>

  • 둘 다 사용 가능함
  • 그러나, React를 사용할 때는 <Foo> 키워드는 JSX 문법과 겹치기 때문에 as Foo를 공통적으로 사용하는 것을 추천
profile
게임회사 주니어 개발pm에서 프론트엔드 개발자로 전향하는 과정

0개의 댓글