Ich schreibe einen Code, den ich nur auf den Token von import * as name from 'module-name'
Syntax anwenden möchte.Erkennen von `import * als Name` Token
Gibt es eine Möglichkeit, das zu tun? Ich erinnere mich, dass es eine __ESModule
Flagge oder etwas Ähnliches gibt, aber das ist nicht in der offiziellen Spezifikation, also bin ich nicht sicher, ob das der richtige Ansatz ist (und ich kann den genauen Artikel nicht finden, der darüber spricht, wäre ein Hinweis von tolle Hilfe).
heißt das ist, was ich will (mit Typoskript im Beispiel):
import * as someModule from 'module-name'
import someDefault from 'module-name'
import { someNamed } from 'module-name'
import otherImport = require('cjs-module')
let somethingElse = {} // anything
checkIsStarModule(someModule) // true
checkIsStarModule(someDefault) // false
checkIsStarModule(someNamed) // false
checkIsStarModule(otherImport) // false
checkIsStarModule(somethingElse) // false
Und was ist der richtige Name import * as name ...
Syntax zu beschreiben? :)
EDIT: Hinzufügen eines Kontexts zu der Frage.
Ich mache so etwas wie aurelia
's FrameworkConfiguration
.
Und ich möchte es nur auf someModule
wie oben beschrieben anwenden. Das liegt daran, dass ich die Methode configure()
nicht versehentlich auf etwas ausführen möchte, das kein Modul ist.
Meine API ist get(key: Newable<T> | T): Promise<T>
und ich erlaube es den Verbrauchern, in alles einwerfen, wie key
(Newable<T>
ist einfach jede Klasse).
Dank @estus auf __esModule
, und ich erkenne, dass es nur für Interop ist daher nicht in diesem Zusammenhang nützlich.
Welchen Zweck sollte diese Überprüfung erfüllen? '__esModule' ist der Weg, wie der ES6-Import erkannt werden kann. – estus
Was willst du, wenn ein Modul 'Foo importieren von './Foo'; Export {Foo}; '? Wenn Sie dann 'Foo} aus './index';' importieren, wäre das 'Foo'-Objekt ein Import mit einem Stern, aber nicht aus der aktuellen Datei. Es würde wahrscheinlich helfen, mehr über den Anwendungsfall zu wissen, den Sie tatsächlich zu lösen versuchen. – loganfsmyth
@loganfsmyth, das wäre in Ordnung. Genau das habe ich erwartet und gesucht. – unional