MST

星途 面试题库

面试题:TypeScript中Symbol在模块间的应用

假设你正在开发一个大型的TypeScript项目,有多个模块。现在需要在不同模块间共享一个唯一标识,要求使用Symbol来实现,并且要避免命名冲突。请阐述实现思路,并给出关键代码示例。
38.0万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 在一个独立的模块中创建一个Symbol实例,这样可以确保在整个项目中只有一个实例。
  2. 导出该Symbol实例,供其他模块使用,由于Symbol的唯一性,即使不同模块导入使用,也不会出现命名冲突。

关键代码示例

  1. 创建uniqueSymbol.ts文件
// uniqueSymbol.ts
export const UNIQUE_SYMBOL = Symbol('unique-identifier');
  1. 在其他模块中使用
import { UNIQUE_SYMBOL } from './uniqueSymbol.ts';

function someFunction() {
    const obj = {};
    obj[UNIQUE_SYMBOL] = 'Some value associated with the unique symbol';
    console.log(obj[UNIQUE_SYMBOL]);
}