Ich versuche, einige Arten zu entwickeln. Was ich erreichen wollte, war, diese Typen mit einer solchen Syntax importieren zu können.Warum kann ich ein Modul als Klasse verwenden?
import {myModule} from "myModule";
Ich habe es geschafft, aber ich weiß nicht, warum es funktioniert, wie es funktioniert. Ich meine, es ist perfekt, dass es so funktioniert, das einzige Problem ist, dass ich es nicht verstehe.
Hier ist, wie mein Code in index.d.ts Datei:
namespace myModule {
export interface myInterface {
....
}
export class myModule {
....
}
}
declare module "myModule" {
export = myModule;
}
Die größte Sache ist, dass ich es so, dass verwenden:
import {myModule} from "myModule";
let myModuleInstanceVariable = new myModule();
let anotherVariable: myModule.myInterface;
Und es funktioniert, (Intelisense und Typ Überprüfung funktioniert ordnungsgemäß), aber ich habe eine Frage:
Wie es möglich ist, dass ich myModule einmal als Klassenname und dann als Namesp verwenden kann As?
EDIT:
Ok Es scheint, dass ich das ganze Konzept der Erklärungen falsch verstanden.
import {myModule} from "myModule";
importiert eine Klasse MyModule
konnte ich MyModule Namespace zugreifen, weil es einen Umfang verunreinigt (Namespace auf der .d.ts
Datei zugänglich sind, aus einer anderen Datei, wenn die .d.ts
in tsconfig.ts
ist), bevor ich auch importiert genannt etwas.
Dank @Ryan Cavanaugh für Ihre Hilfe.
Es scheint, als ob Sie den Unterschied zwischen 'import {myModule} von" myModule ";' und 'import * als myModule von" myModule "vermissen;' –
@RyanCavanaugh Könnten Sie mir bitte in Ihrer Antwort aufklären? – FieryCod
Haben Sie versucht, 'import *' zu verwenden und zu sehen, wie es funktioniert? –