我正在使用以下typescript方法生成<?php
// Set up a local variable.
$columns= array();
// Collect the data.
while (have_posts)
{
the_post();
$columns[$col] .= '<div class=col-' . $col . '>' . get_template_part( 'template-parts/content', 'three-columns' ) . '</div>';
}
// Output the data.
foreach($columns as $col => $data)
{
echo '<div class="column-' . $col . '-wrapper">' . $data . '</div>';
}
s。代码本身基本上是这个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
的规则。我不知道如何在不损害UUID生成器的加密方面的情况下重写此代码。如何重写这段代码或者这根本没有意义呢?
答案 0 :(得分:12)
TSLint强调这一点的原因是因为偶然使用了按位运算符(例如,在if语句中)而不是故意使用它。
告诉TSLint您真的意味着使用按位运算符应该是完全可以接受的。只需将它们包装在特殊的TSLint注释中即可。 :
/* tslint:disable:no-bitwise */
// Your code...
/* tslint:enable:no-bitwise */
答案 1 :(得分:1)
export abstract class SystemGuid{
constructor() {
// no-op
}
public static UUID(): string {
if (typeof window !== 'undefined' && typeof window.crypto !== 'undefined'
&& typeof window.crypto.getRandomValues !== 'undefined') {
const buf: Uint16Array = new Uint16Array(8);
window.crypto.getRandomValues(buf);
return (
this.pad4(buf[0]) +
this.pad4(buf[1]) +
'-' +
this.pad4(buf[2]) +
'-' +
this.pad4(buf[3]) +
'-' +
this.pad4(buf[4]) +
'-' +
this.pad4(buf[5]) +
this.pad4(buf[6]) +
this.pad4(buf[7])
);
} else {
return (
this.random4() +
this.random4() +
'-' +
this.random4() +
'-' +
this.random4() +
'-' +
this.random4() +
'-' +
this.random4() +
this.random4() +
this.random4()
);
}
}
private static pad4(num: number): string {
let ret: string = num.toString(16);
while (ret.length < 4) {
ret = '0' + ret;
}
return ret;
}
private static random4(): string {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
public static generate(): string {
return SystemGuid.UUID();
}
}