TIR: 타입스크립트 프로그래밍 (3) 타입의 모든것 (string, symbol) - 220816

Lumpen·2022년 8월 16일
0

TIR

목록 보기
28/40

string

string은 모든 문자열의 집합으로 연결, .slice() 등의 연산을 수행할 수 있다

let a = 'hello' // string
const c = '!' // '!'
let e: string = 'zoom' // string
let f: 'john' = 'john' // john
let g: 'john' = 'zoe' // error

boolean과 number와 같이 string 타입도 네 가지 방법으로 선언할 수 있으며, 타입을 추론하도록 두는 편이 좋다

symbol

심볼은 ES2015에 새로 추가된 기능이다
실무에서는 심볼을 자주 사용할 일이 없다
심벌 키를 사용하면 사람들이 잘 알려진 키만 사용하도록 강제할 수 있어, 키를 잘못 설정하는 실수를 방지한다
객체의 기본 반복자 (Symbol.iterator)를 설정하거나 객체가 어떤 인스턴스인지 (Symbol.hasInstance)를 런타임에 오버라이딩 하는 것과 비슷한 기능을 제공
symbol타입은 할 수 있는 기능이 별로 없다

const a = Symbol('a') // typeof e
const f: unique symbol = Symbol('f') // typeof f
let g: unique symbol = Symbol('f') // error unique symbol은 const 여야만 한다
let h = e === e // boolean
let i = e === f // error unique symbol은 const 여야한다

만들어진 심볼은 고유하여 다른 symbol과 비교하면 같지 않다고 판단된다
같은 이름으로 다른 symbol을 만들어도 마찬가지다

unique symbol을 만드는 방법을 알 수 있다
1. 새 symbol을 선언하고 const 변수에 할당하면 타입 스크립트가 unique symbol 타입으로 추론한다
코드 편집기에서는 unique symbol이 아니라 typeof 변수명 형태로 보여준다
2. const 변수의 타입을 unique symbol로 명시적으로 정의할 수 있다
3. unique symbol은 자신과 항상 같다
4. 타입스크립트는 컴파일 타임에 unique symbol이 다른 unique symbol과 같지 않을 것이라는 사실을 알 수 있다

unique symbol도 결국 다른 리터럴 타입과 마찬가지로 특정 symbol을 나타내는 타입이다

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글