我在浏览器和节点之间共享一些代码,并且我想使用Performance.now()代替Date.now()(如果可用).不幸的是,在节点中,性能不可用,打字稿给我一个错误.我可以添加整个dom库,但这可以吸收所有内容,我想避免这样做,因为它最终会掩盖真正的错误.因此,如何修改全局名称空间以说:“嘿,这种名称性能可能存在或可能不存在”
对于它的价值,这是我试图在节点和浏览器中进行干净编译的行:
const lastUpdate = typeof performance !== undefined ? performance.now() : Date.now();
这是我得到的错误:
error TS2304: Cannot find name ‘performance’.
最佳答案
typeof返回的值是字符串“ undefined”,而不是undefined.因此,您的比较应为:
原文链接:https://www.f2er.com/js/531188.htmlconst lastUpdate = typeof performance !== 'undefined' ? performance.now() : Date.now();
从MDN开始:
The typeof operator returns a string indicating the type of the unevaluated operand.