# 타입 단언(Type Assertion)
타입 단언은 개발자가 해당 타입에 대해 확신이 있을 때 사용하는 타입 지정 방식입니다. 다른 언어의 타입 캐스팅과 비슷한 개념이며 타입스크립트를 컴파일 할 때 특별히 타입을 체크하지 않고, 데이터의 구조도 신경쓰지 않습니다.
# 타입 단언 기본 - as
타입 단언은 기본적으로 as
키워드를 이용해서 정의할 수 있습니다. 아래와 같은 코드가 있다고 합시다.
const name: string = 'Capt';
이 코드는 타입 표기 방식을 이용해 name
이라는 변수의 타입은 string
이라고 정의한 코드입니다. 이 코드에 타입 단언을 적용하면 다음과 같습니다.
const name = 'Capt' as string;
비주얼 스튜디오 코드에서 name
변수의 정보를 확인해 보면 동일하게 string
으로 추론되는 것을 확인할 수 있습니다.
# 타입 단언은 언제 쓰는가?
타입 단언은 타입스크립트 컴파일러보다 개발자가 더 해당 타입을 잘 알고 있을 때 사용해야 합니다. 혹은, 자바스크립트 기반 코드에 점진적으로 타입스크립트를 적용할 때도 자주 사용됩니다. 예를 들어, 다음과 같은 자바스크립트 코드가 있다고 합시다.
// app.js
const capt = {};
capt.name = '캡틴';
capt.age = 100;
이 객체에 타입 표기 방식으로 타입을 정의하려고 하면 에러가 발생합니다.
interface Hero {
name: string;
age: number;
}
const capt: Hero = {}; // X. 오류 발생
capt.name = '캡틴';
capt.age = 100;
왜냐하면 capt
변수가 정의되는 시점에서 name
, age
등의 속성이 정의되지 않았기 때문입니다. 기존에 운영하던 서비스의 코드가 위와 같다면 아래와 같이 코드를 변경하여 타입 오류를 해결할 수도 있습니다.
interface Hero {
name: string;
age: number;
}
const capt: Hero = {
name: '캡틴',
age: 100
};
하지만, 기존 코드의 변경 없이 as
키워드로 타입 문제를 해결할 수 있습니다.
interface Hero {
name: string;
age: number;
}
const capt = {} as Hero; // 오류 없음
capt.name = '캡틴';
capt.age = 100;
# 타입 단언에 대해 더 자세히 알고 싶다면?
더 친절하고 자세한 설명이 아래 책 13장에 적혀있습니다.
널 아님 보증 연산자 !
등 타입 단언에 대해 더 깊게 공부해 보세요 😃
https://www.yes24.com/Product/Goods/119410497
# 강의와 책으로 더 쉽게 배워요 🎁
누적 수강생 8천명이 선택한 타입스크립트 입문 - 시작부터 실전까지 온라인 강의로 더 쉽게 배워볼 수 있어요 😃
강의와 함께 쉽게 시작하는 타입스크립트를 읽어보시면 더 깊고 넓게 이해할 수 있습니다 😃