即使功能运行正常,没有问题,我在ng服务日志中仍收到以下错误。但是,当我为生产而构建时,这将成为一个问题。如何解决此错误?
uuidv4() {
return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
)
}
在我的服务中,我将其称为this.uuidv4()以生成唯一的ID。
答案 0 :(得分:5)
好的,我知道它现在在做什么。该代码[1e7]+-1e3+-4e3+-8e3+-1e11
利用了addition operator's固有类型强制。例如,[]+0
返回"0"
,而[1]-1
返回"1-1"
。它可以在JavaScript中正常工作,但是TypeScript会警告您,因为这类代码通常是拼写错误或逻辑错误的结果。
对于"10000000-1000-4000-8000-100000000000"
来说,该表达式只是code golf的一小部分。只需用代码中的结果值替换该表达式,如下所示:
return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, c =>
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
)