Ich möchte Typisierung für ein Javascript-Projekt definieren. Lassen Sie uns eine vereinfachte Version betrachten:Typescript-Typ-Definition verschachtelten Namespace mit Schnittstellen
a
|
+ A.js
+ b
|
+ B.js
Es gibt einen Ordner ‚a‘, und in ihm dort Ordner ‚b‘ ist, und ich möchte es benutzen, wie:
import { A } from "a"
import { B } from "a/b"
Die Typisierung, dass ich würde am liebsten wie folgt aussehen wie etwas haben:
declare namespace a {
interface A { }
namespace b {
interface B { }
}
}
declare module "a" {
export = a
}
declare module "a/b" {
export = a.b
}
aber das gibt mir den Fehler Cannot use namespace 'a' as a value
.
Ich bemerkte, wenn ich Interfaces zu Klassen ändere, behebt das Problem. Kann jemand bitte etwas Licht werfen, warum es so ist? Gibt es eine Möglichkeit, solche Definitionen mit Schnittstellen zu bekommen?
Was Sie tun mean von "es sei denn, die Namespaces a und ab sind zur Laufzeit tatsächlich als globale Variablen verfügbar"? – Wickoo
@Wickoo, d. H. Sie können auf sie zugreifen, ohne sie zu importieren, wie 'setTimeout' –