替代uuid创建中的按位运算符

Seb*_*ull 4 javascript uuid lint typescript tslint

我正在使用以下typescript方法来生成UUIDs.代码本身基本上是这个stackoverflow答案的打字稿版本.

generateUUID(): string {
    let date = new Date().getTime();
    if (window.performance && typeof window.performance.now === 'function') {
        date += performance.now();
    }
    let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        let r = (date + Math.random() * 16) % 16 | 0;
        date = Math.floor(date / 16);
        return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
    });
    return uuid;
};
Run Code Online (Sandbox Code Playgroud)

我们的开发团队TSLint用来保持代码清洁,我们有一个禁止使用的规则bitwise operators.我不知道如何在不损害UUID生成器的加密方面的情况下重写此代码.如何重写这段代码或者这根本没有意义呢?

Mat*_*son 16

TSLint强调这一点的原因是因为偶然使用按位运算符(例如,在if语句中)而不是故意使用它.

告诉TSLint你真的打算使用按位运算符应该是完全可以接受的.只需将它们包装在特殊的TSLint注释中即可.:

/* tslint:disable:no-bitwise */

// Your code...

/* tslint:enable:no-bitwise */
Run Code Online (Sandbox Code Playgroud)

  • 您可以只在下一行添加此注释:// tslint:disable-next-line:no-bitwise (2认同)