在TypeScript(和JavaScript)中,Symbol
是一個內置對象,它提供了一個唯一的且不可改變的數據類型,用于作為對象的鍵(key)。這種類型主要用于避免命名沖突,特別是在使用像 for...in
或對象字面量擴展等可能導致屬性名沖突的情況下。
在你給出的代碼片段中:
typescript
const sym1:symbol = Symbol();
這里做了幾件事:
- 使用
Symbol()
創建了一個新的、唯一的symbol
值。 - 聲明了一個常量
sym1
,并使用symbol
類型注解來指定其類型。 - 將新創建的
symbol
值賦給sym1
。
由于 Symbol()
每次被調用時都會返回一個新的、唯一的 symbol
值,所以 sym1
會持有一個與其他任何 symbol
值都不同的值。
這個 symbol
值可以用作對象的屬性鍵,例如:
typescript
|
注意,你不能使用點表示法(如 obj.sym1
)來訪問這個屬性,因為 sym1
是一個 symbol
,而不是一個字符串字面量。你必須使用方括號表示法(如 obj[sym1]
)來訪問它。