TypeScript 심볼 유형 및 사용 방법

TypeScript의 Symbol 유형은 ES6에서 도입된 고유하고 불변의 기본 유형입니다. Symbol은 종종 객체 속성 키로 사용되어 속성이 고유하고 실수로 서로를 덮어쓰지 않도록 합니다. 이는 객체 속성을 상수로 사용해야 하지만 고유하고 열거할 수 없도록 유지해야 하는 시나리오에서 특히 유용합니다.

심볼 생성

심볼을 생성하려면 Symbol 함수를 사용합니다. Symbol을 호출할 때마다 새로운 고유한 심볼이 생성됩니다.

const uniqueSymbol = Symbol('description');
const anotherSymbol = Symbol('description'); // This is a different symbol, even if the description is the same

심볼을 객체 키로 사용

심볼은 객체 속성의 키로 사용될 수 있습니다. 이렇게 하면 속성 이름이 고유하고 다른 속성과 실수로 충돌하는 것을 방지할 수 있습니다.

const mySymbol = Symbol('mySymbol');

const myObject = {
  [mySymbol]: 'value'
};

console.log(myObject[mySymbol]); // Outputs: value

Symbol.for 및 Symbol.keyFor

Symbol.for 메서드는 주어진 키로 글로벌 심볼을 생성하거나 검색합니다. 이는 애플리케이션의 여러 부분에서 심볼을 공유하는 데 유용할 수 있습니다. Symbol.keyFor 메서드는 글로벌 심볼과 연관된 키를 반환합니다.

const globalSymbol = Symbol.for('globalSymbol');
const sameGlobalSymbol = Symbol.for('globalSymbol'); // Retrieves the same symbol

console.log(globalSymbol === sameGlobalSymbol); // Outputs: true

const symbolKey = Symbol.keyFor(globalSymbol);
console.log(symbolKey); // Outputs: 'globalSymbol'

결론

TypeScript의 Symbol 유형은 고유한 속성 키를 만드는 강력한 메커니즘을 제공하며, 이는 속성 이름 충돌을 방지하고 보다 안정적이고 유지 관리하기 쉬운 코드를 보장하는 데 도움이 될 수 있습니다. 개발자는 심볼을 이해하고 활용함으로써 TypeScript 애플리케이션에서 객체 속성과 고유성을 보다 잘 관리할 수 있습니다.