Ich habe eine Karte von Klassen, die eine Klasse FrameModel
erweitern, siehe TypeScript - storing a class as a map value?.TypeScript - Fenster <Typeof FrameModel> kann nicht erneut eingegeben werden ["FrameModel"];
static mapping: { [key: string]: typeof FrameModel } = {
for (var key in Object.keys(window)){
var val = window[key];
// ... some checks ...
DiscriminatorMapping.mapping[key] = <typeof FrameModel> val;
}
jedoch TS nicht wie die die letzte Zeile, sagen „Fehler TS2352:. Weder Typ‚Fenster‘noch Typ‚typeof FrameModel‘auf die andere zuweisbare ist“
In lib.d.ts
, die Definition ist: declare var window: Window;
Warum dies auch auf die Eigenschaften von window
ist TS gelten?
Ich kann das mit <any>
verhindern, aber ich habe mich gefragt, wie es richtig geht.
Beachten Sie, dass ich den Namen der Eigenschaft im Voraus nicht kennen, so kann ich etwas wie declare window.MyClass: FrameModel
nicht tun.