일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- github
- 코드공유
- jQuery
- 프론트엔드
- web
- PROJECT
- 생활코딩
- 리액트
- 연산자
- 슬라이드전환
- HTML
- 깃
- 자바스크립트
- 코딩독학
- JS
- react
- JavaScript
- 실기
- 웹디실기
- 렛츠기릿자바스크립트
- 비전공자
- 웹디자인기능사
- CSS
- 웹디자인기능사실기
- Supabase
- 정보처리기사
- 웹퍼블리셔
- 세로메뉴바
- 타입스크립트
- git
Archives
- Today
- Total
코딩하는라민
[TypeScript] 리터럴 타입(literal types) 본문
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
반응형
'Core > TypeScript' 카테고리의 다른 글
[TypeScript] 초과 속성 검사 (Excess Property Checks) (5) | 2023.05.30 |
---|---|
[TypeScript] 객체 타입을 선언하는 방식과 별칭 객체 타입(Type alias) (3) | 2023.05.29 |
[TypeScript] 구조적 타이핑으로 타입 호환성 확인하기, 덕 타이핑이란? (0) | 2023.05.28 |
[TypeScript] 유니언 타입(Union Type)과 내로잉(narrowing) (2) | 2023.05.25 |
[TypeScript] 타입 애너테이션(Type annotation) (2) | 2023.05.25 |