blog

유형 "스크립트" 튜토리얼 유형 "스크립트" 심볼

이 섹션에서는 심볼 타입의 구문, 사용법 및 시나리오를 설명합니다. Symbol()에서 반환되는 각 값의 고유성은 심볼 타입을 사용하는 가장 중요한 이유입니다. 1. 심볼 설명...

Oct 26, 2025 · 3 min. read
シェア

타입스크립트 기호

이 섹션에서는 심볼 타입의 구문, 사용법 및 적용 시나리오에 대해 설명합니다. 심볼()에서 반환되는 각 값의 고유성은 심볼 타입을 사용하는 가장 중요한 이유입니다.

설명

기호는 기본 데이터 유형입니다.

Symbol() 함수는 심볼 타입의 값을 반환합니다. Symbol()에서 반환되는 각 기호 값은 고유합니다.

구문

기호([설명])

매개변수 설명: 선택 사항, 문자열 유형입니다.

소개

Symbol()을 사용하여 새 심볼 유형을 만듭니다:

const sym1: symbol = Symbol() const sym2: symbol = Symbol('foo') const sym3: symbol = Symbol('foo')

위의 코드는 세 가지 새로운 심볼 유형을 생성하지만 Symbol()에서 반환되는 각 값은 고유하다는 점에 유의하세요:

console.log(sym2 === sym3) // false

코드 설명: 각 Symbol() 메서드는 고유한 값을 반환하므로 sym2와 sym3는 같지 않습니다.

Symbol()이 생성자로서 불완전합니다:

const sym = new Symbol() // TypeError

이 구문은 기본 데이터형을 둘러싸는 명시적 래퍼 객체를 만드는 것이 ECMAScript 6부터 더 이상 지원되지 않기 때문에 오류를 보고하지만, 레거시 이유로 new Boolean(), new String() 및 new Number()는 여전히 생성할 수 있습니다:

const symbol = new Symbol() // TypeError const bigint = new BigInt() // TypeError const number = new Number() // OK const boolean = new Boolean() // OK const string = new String() // OK

시나리오

  1. 객체에 많은 속성()이 있는 경우 속성 이름을 재정의하기 쉬운데, 이는 vue-router의 name 속성과 같은 기호 값을 사용하여 방지할 수 있습니다.
// a.js export const aRouter = { path: '/index', name: Symbol('index'), component: Index }, // b.js export const bRouter = { path: '/home', name: Symbol('index'), // component: Home }, // routes.js import { aRouter } from './a.js' import { bRouter } from './b.js' const routes = [ aRouter, bRouter ]

코드 설명: 서로 다른 두 파일이 속성 이름의 값으로 동일한 심볼('index')을 사용하므로 심볼 유형의 고유성으로 인한 중복 정의를 피할 수 있습니다.

  1. 아날로그 클래스의 비공개 메서드
const permission: symbol = Symbol('permission') class Auth { [permission]() { // do something } }

이 경우 클래스의 인스턴스를 통해 메서드를 가져올 수 없으므로 클래스의 비공개 메서드를 시뮬레이션할 수 없습니다.

그러나 타입스크립트는 비공개 키워드를 사용할 수 있으므로 이 메서드는 자바스크립트에서 사용할 수 있습니다.

  1. 사용 가능 여부 결정... 반복 횟수
if (Symbol.iterator in iterable) {
 for(let n of iterable) {
 console.log(n)
 }
}

이 점은 반복자 섹션에서 강조할 것이므로 여기에 알아야 할 사항이 있습니다:

  • for... 의 루프는 데이터 구조의 Symbol.iterator 메서드를 호출합니다.
  • for... 의 경우 열거 가능한 속성만 반복할 수 있습니다.
  1. 심볼.프로토타입.설명

의 선택적 문자열은 원하는 경우 심볼에 대한 설명입니다:

const sym: symbol = Symbol('mybj') console.log(sym); // Symbol(mybj) console.log(sym.toString()); // Symbol(mybj) console.log(sym.description); // mybj

팁: 설명 속성은 Node.js의 최소 지원 버전인 ES1029의 새로운 표준입니다.

요약

이 섹션에서는 자주 사용되지는 않지만 특정 시나리오에서 매우 유용한 심볼의 몇 가지 일반적인 용도에 대해 설명합니다.

Read next

Linux에서 HTTP 프록시 서버 설정하기

Linux에서 HTTP 프록시 서버를 설정하려면 몇 가지 주요 단계를 거쳐야 합니다. 다음은 기본 HTTP 프록시 서버를 설정하는 데 도움이 되는 간단한 가이드입니다. 프록시 소프트웨어 선택: HTTP 프록시 서버를 설정하는 데 사용할 수 있는 소프트웨어는 여러 가지가 있으며, 그중 자주 사용되는 몇 가지 선택 사항은 다음과 같습니다.

Oct 25, 2025 · 2 min read