Type Assertion 사용

Type Assertion

TypeScript에서 Type Assertion은 개발자가 해당 타입에 대해서 이미 알고 있어서 특정 타입으로 캐스팅해서 해당 타입에서 사용할 수 있는 멤버(메서드 등)를 컴파일시 사용할 수 있게 하는 기능이다. Type Assertion은 타 언어의 캐스팅과 비슷하지만, 실제 런타임시에 데이타 타입 변환 등을 일어나지 않고, 다만 컴파일타임에 타입을 캐스팅해서 인텔리센스 등과 같은 기능을 쉽게 이용할 수 있도록 한다. Type Assertion은 크게 as 를 사용하는 방법과 <T> 를 사용하는 방법이 있는데, 둘은 동일한 효과를 나타낸다.

    // as 를 사용한 Type Assertion
    let s: any = "Hello";
    let leng: number = (s as string).length;
    console.log(leng);
    
    // <T> 를 사용한 Type Assertion
    let s2: any = "Hello";
    let leng2: number = (<string>s2).length;

아래 예제에서 보면, 개발자는 getData()가 문자열을 리턴하는 것을 이미 알고 있어서, 이를 string으로 캐스팅해서 String.substring() 메서드를 호출하고 있다. VS Code에서 (data as string) 뒤에 . 을 찍으면, 문자열과 관련된 메서드들이 인텔리센스를 통해 표시된다.

    let data: any = getData();
    let s = (data as string).substring(2);
    console.log(s);
본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.