createUniqueLabeledName
在已有名称集合中分配不冲突的显示名(base、base 2、base 3 …)。
函数签名
typescript
function createUniqueLabeledName(options: CreateUniqueLabeledNameOptions): string
interface CreateUniqueLabeledNameOptions {
existingNames: readonly string[]
base: string
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options.base | string | 是 | 期望使用的基础名称 |
options.existingNames | readonly string[] | 是 | 已占用的名称列表 |
返回值
| 类型 | 说明 |
|---|---|
string | 不与 existingNames 冲突的唯一名称 |
工作原理
- 将
existingNames放入Set做 O(1) 查找。 - 若
base未被占用,直接返回base。 - 否则从
2起递增,尝试${base} ${index},返回第一个未占用的名称。