是否有一种方法可以强制打字稿的window
对象解析PaymentRequest
属性?这是我的角度组件内部的代码示例:
if (window.PaymentRequest) {
// This browser supports Payment Request
} else {
// Browser does not support Payment Request
}
这是我得到的错误:
error TS2339: Property 'PaymentRequest' does not exist on type 'Window'.
您有几个选择。
随定义一起更新到最新的TypeScript:https://github.com/microsoft/TypeScript/blob/20e2be1e1a0fb2a2f481410d24e4cae915e5ece7/lib/lib.dom.d.ts#L11549
添加global.d.ts
,在其中扩展interface Window
以具有相应的API,并从上述lib.d.ts复制粘贴。
这并不理想,因为您将要进行很多复制粘贴,如果其他人决定升级TypeScript,将来他们将不得不还原它们。
if ((window as any).PaymentRequest) {
由于断言是potentially little white lies to the compiler,因此不理想。