[Typescript] Type Assertion

SOL·2023년 10월 21일
0

TypeScript

목록 보기
8/8
post-thumbnail

Type Assertion은 타입을 강요할 때 사용합니다.


자바스크립트에서 아래 함수는 반환값이 any 타입으로 지정됩니다. 따라서 반환값을 담은 result 변수도 any 타입을 가집니다. 그래서 문자열에서 사용할 수 있는 내장 함수들(length와 같은)을 사용할 수 없습니다.

function onlyString() {
	return 'hello';
}

const result = onlyString();
result.length //에러

따라서 항상 문자열을 반환하는 함수라는 것이 확실하다면 as 키워드를 사용하거나 변수 앞에 <> 기호를 사용하여 Type Assertion을 할 수 있습니다.

function onlyString() {
	return 'hello';
}

const result = onlyString();
console.log((result as string).length); //5
console.log((<string>result).length); //5


함수 뒤에 또는 변수뒤에 !키워드를 사용하여 무조건 null이 아님을 나타낼 수도 있습니다.

function findNumbers(): number[] | undefined {
	return undefined;
}

//const result = findNumbers()!;
const result = findNumbers();
numbers!.push(1);


예상치 못한 에러

하지만 정말 확신할 수 있는 경우에만 사용하는 것이 좋으며, 100%를 장담할 수 없다면 사용하지 않는편이 좋습니다. 예상치 못한 오류로 프로그램이 중단될 수 있습니다.

const error: any = 5;

(error as Array<number>).push(1); //에러
profile
개발 개념 정리

0개의 댓글

관련 채용 정보