Gustav Gustav -4 years ago 809
TypeScript Question

A typescript Guid class?

Does anyone know of a good, solid, implementation of C# like Guid in typescript?

Could do it myself but figured I'd spare my time if someone else done it before.

Thanks!

Answer Source

There is an implementation in my TypeScript utilities based on JavaScript GUID generators.

Here is the code:

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 < 100; i++) {
    var id = Guid.newGuid();
    console.log(id);
}

Please note the following:

C# GUIDs are guaranteed to be unique. This solution is very likely to be unique. There is a huge gap between "very likely" and "guaranteed" and you don't want to fall through this gap.

JavaScript-generated GUIDs are great to use as a temporary key that you use while waiting for a server to respond, but I wouldn't necessarily trust them as the primary key in a database. If you are going to rely on a JavaScript-generated GUID, I would be tempted to check a register each time a GUID is created to ensure you haven't got a duplicate (an issue that has come up in the Chrome browser in some cases).

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download