코딩하는라민

[TypeScript] 리터럴 타입(literal types) 본문

Core/TypeScript

[TypeScript] 리터럴 타입(literal types)

코딩하는라민 2023. 5. 26. 13:12
728x90
반응형

[TypeScript] 리터럴 타입(literal types)

 

 

📌 리터럴 타입(literal types)

특정한 값 자체를 타입으로 지정하는 기능이다. 리터럴 타입은 값의 정확한 타입을 나타내기 위해 사용된다.

const friends = "dana";
friends = "udin"; // ❌ error: Cannot assign to 'friends' because it is a constant.

변수 frineds 는 "dana" 만 값으로 가질 수 있다. 다른 문자열들은 friends 와 호환되지 않는다.

 

문자열 뿐만아니라 숫자, 불리언, 객체 등의 다양한 값에 대해 사용할 수 있다.

type MyFavoriteNumber = 3;
type MyBoolean = true;
type MyInfo = { bane: "ramin" };

 

리터럴 타입은 변수의 타입으로 사용될 수 있으며, 함수 매개변수, 반환 타입, 인터페이스 멤버 등에서도 사용할 수 있다.

리터럴 타입을 사용하면 특정한 값의 타입을 명확하게 지정하여 타입 안정성을 높일 수 있다.

 

📌 리터럴 할당 가능성

동일한 원시 타입일지라도 서로 다른 리터럴 타입은 서로 할당할 수 없다.

// 서로 다른 리터럴 타입은 할당 불가 ❌
let NameType: "choi";

NameType = "choi"; // Ok
NameType = "kim"; // Error

 

그러나 리터럴 타입은 그 값이 해당하는 원시 타입에 할당할 수 있다.

let literalType = "";
let nameType = "choi";

nameType = literalType; // ❌ Error
literalType = "ramin"; // ⭕

literalType = nameType; // ⭕

원시 타입은 리터럴 타입에 할당할 수 없지만, 리터럴 타입은 여전히 해당 원시 타입이므로 원시 타입에 할당할 수 있다.

 

📌 유니언 타입 애너테이션

유니언 타입 애너테이션에서는 리터럴 타입과 원시 타입을 섞어서 사용할 수 있다.

let test: number | "tomorrow" | "today";

test = 25; // Ok
test = "today"; // Ok

test = false;
// Error : Type 'false' is not assignable to type 'number | "tomorrow" | "today"'

 

 


참고 : 러닝 타입스크립트를 읽고, chat GPT 의 도움을 받아 학습한 내용을 간단하게 정리한 내용입니다.
잘못된 부분이나 문제되는 점이 있으면 댓글 부탁드립니다.

 

728x90
반응형