Я использую следующий метод машинописного ввода для генерации UUID
. Сам код в основном - это машинописная версия этого stackoverflow answer.Альтернатива побитовым операторам в создании uuid
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;
};
Наша команда разработчиков использует TSLint
, чтобы сохранить код в чистоте и у нас есть правило, которое запрещает использовать bitwise operators
. Я не знаю, как переписать этот код без ущерба для криптографического аспекта генератора UUID. Как этот код может быть переписан или вообще не имеет смысла?
Почему у вас есть правило, запрещающее побитовые операторы? Это странно. – Pointy
Я думаю, это тоже странно, но это было не мое решение. –
Правило TSLint является ошибкой. Не код – slebetman