Symbols
소개
ECMAScript 2015부터 symbol
은 number
와 string
처럼 Primitive 데이터 타입입니다.
symbol
값은 Symbol
생성자를 호출하여 생성됩니다.
|
|
Symbol
은 변경 불가능하며 고유합니다.
|
|
string
과 마찬가지로 symbol
을 객체 프로퍼티의 키로 사용할 수 있습니다.
|
|
Symbol을 계산된 프로퍼티 선언과 결합하여 객체 프로퍼티와 클래스 멤버를 선언할 수도 있습니다.
|
|
잘 알려진 Symbol
사용자 정의 Symbol 외에도 잘 알려진 내장 Symbol이 있습니다. 내장 Symbol는 언어 내부 동작을 나타내는 데 사용됩니다.
다음은 잘 알려진 Symbol 목록입니다.
Symbol.hasInstance
생성자 객체가 생성자의 인스턴스 중 하나로서 객체를 인식하는지 여부를 결정하는 메서드입니다. instanceof
연산자의 의미에 의해 호출됩니다.
Symbol.isConcatSpreadable
객체가 Array.prototype.concat
에 의해 배열 요소로 병합되어야 함을 나타내는 부울 값입니다.
Symbol.iterator
객체의 기본 반복자를 반환하는 메서드입니다. for-of
구문의 의미에 의해 호출됩니다.
Symbol.match
문자열과 비교하는 정규 표현식 메서드입니다. String.prototype.match
메서드에 의해 호출됩니다.
Symbol.replace
일치하는 문자열의 부분 문자열을 대체하는 정규 표현식 메서드입니다. String.prototype.replace
메서드에 의해 호출됩니다.
Symbol.search
일치하는 문자열 내에서 인덱스를 반환하는 정규 표현식 메서드입니다. String.prototype.search
메서드에 의해 호출됩니다.
Symbol.species
파생된 객체를 만드는 데 사용되는 생성자 함수의 함수값을 갖는 프로퍼티입니다.
Symbol.split
일치하는 인덱스에서 문자열을 분할하는 정규 표현식 메서드입니다. String.prototype.split
메서드에 의해 호출됩니다.
Symbol.toPrimitive
객체에 대응하는 Primitive로 변환하는 메소드입니다. ToPrimitive 추상 동작에 의해 호출됩니다.
Symbol.toStringTag
객체의 기본 문자열 Tag를 만드는데 사용되는 String 값입니다. 내장 메소드 Object.prototype.toString
에 의해 호출됩니다.
Symbol.unscopables
자신의 프로퍼티 명을 가지는 객체는 관련된 객체의 ‘with’ 환경 바인딩에서 제외되는 속성 이름입니다.
이 내용은 나중에 참고하기 위해 제가 공부하며 정리한 내용입니다.
의역, 오역, 직역이 있을 수 있음을 알려드립니다.
This post is a translation of this original article [https://www.typescriptlang.org/docs/handbook/symbols.html]
참고
- TypeScript 핸드북 1 - 기본 타입
- TypeScript 핸드북 2 - 변수 선언
- TypeScript 핸드북 3 - 인터페이스
- TypeScript 핸드북 4 - 클래스
- TypeScript 핸드북 5 - 함수
- TypeScript 핸드북 6 - Generic
- TypeScript 핸드북 7 - Enum
- TypeScript 핸드북 8 - 타입 유추
- TypeScript 핸드북 9 - 타입 호환성
- TypeScript 핸드북 10 - 고급 타입
- TypeScript 핸드북 11 - Symbol
- TypeScript 핸드북 12 - Iterator와 Generator