TypeScript GUID 类? [关闭]

2024-05-02

有谁知道在 TypeScript 中像 GUID (UUID) 这样的 C# 的良好、可靠的实现吗?

我自己可以做,但我想如果别人以前做过的话我会节省时间。


更新答案

现在您可以在 JavaScript/TypeScript 中本地执行此操作crypto.randomUUID().

下面是生成 20 个 UUID 的示例。

for (let i = 0; i < 20; i++) {
    let id = crypto.randomUUID();
    console.log(id);
}

原答案

我的中有一个实现TypeScript 实用程序 https://github.com/Steve-Fenton/TypeScriptUtilities基于 JavaScript GUID 生成器。

这是代码:

class Guid {
  static newGuid() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
      var r = Math.random() * 16 | 0,
        v = c == 'x' ? r : (r & 0x3 | 0x8);
      return v.toString(16);
    });
  }
}

// Example of a bunch of GUIDs
for (var i = 0; i < 20; i++) {
  var id = Guid.newGuid();
  console.log(id);
}

请注意以下事项:

C# GUID 保证是唯一的。这个解决方案是很可能是独一无二的。 “很有可能”和“有保证”之间存在着巨大的差距,你不想陷入这个差距。

JavaScript 生成的 GUID 非常适合用作等待服务器响应时使用的临时密钥,但我不一定相信它们作为数据库中的主键。如果您要依赖 JavaScript 生成的 GUID,我会在每次创建 GUID 时检查寄存器,以确保您没有重复(在某些情况下 Chrome 浏览器中会出现这个问题) )。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TypeScript GUID 类? [关闭] 的相关文章

随机推荐