如何在Typescript中声明DOMMatrix和WebKitCSSMatrix?

How to decalare DOMMatrix and WebKitCSSMatrix in Typescript?

当我尝试访问Typescript(3.3.3)中的window.DOMMatrixwindow.WebKitCSSMatrix时,出现错误:

Property 'DOMMatrix' does not exist on type 'Window'.

因此我尝试在窗口对象上声明它们,例如,

1
2
3
4
5
interface MatrixWindow extends Window {
  DOMMatrix?: DOMMatrix;
  WebKitCSSMatrix?: DOMMatrix;
}
declare let window: MatrixWindow;

然后当我执行new window.DOMMatrix(transform)时,出现错误:

Cannot use 'new' with an expression whose type lacks a call or construct signature.


我想出了如何在实例化后将变量作为类输入为所需的类型。这有效:

1
2
3
4
5
interface MatrixWindow extends Window {
  DOMMatrix?: new (init: string | number[]) => DOMMatrix;
  WebKitCSSMatrix?: new (init: string | number[]) => DOMMatrix;
}
declare let window: MatrixWindow;

(#rubberducking)