Wie kann ich einen Standardimport in Javascript aliasen?

382

Mit ES6-Modulen weiß ich, dass ich einen benannten Import aliasen kann

import { foo as bar } from 'my-module';

Und ich weiß, dass ich einen Standardimport importieren kann

import defaultMember from 'my-module';

Ich möchte einen Alias ​​für einen Standardimport verwenden und hatte gedacht, dass Folgendes funktionieren würde

import defaultMember as alias from 'my-module';

Dies führt jedoch zu einem Analysefehler (Syntaxfehler).

Wie kann ich (oder kann ich?) Einen Standardimport aliasisieren?

sfletche
quelle

Antworten:

725

defaultMemberschon ist ein Alias - es muss nicht der Name der exportierten Funktion / Sache sein. Mach einfach

import alias from 'my-module';

Alternativ können Sie tun

import {default as alias} from 'my-module';

aber das ist eher esoterisch.

Bergi
quelle
12
Der Alias ​​allein ist esoterisch! Das Importieren des benannten Exports und der Standardeinstellung ist praktisch, wenn Redux-Komponenten getestet werden:import WrappedComponent, { Component } from 'my-module';
ptim
Einige sehr strenge Regeln stimmen nicht überein und möchten, dass Sie den Namen der Standardeingabe als Dateinamen
beibehalten
1
@Blauhirn Ist das für alte IDEs, die Referenzen nicht folgen können und globales Suchen und Ersetzen für ihre Refactoring-Tools verwenden müssen? Lächerlich.
Bergi
@Bergi nein, es ist die tslint-Regel "import-name", die zB vom Airbnb-tslint-Regelsatz verwendet wird und daher ziemlich weit verbreitet ist. Diese Regeln sind vorhanden, um konsistenten, fehlerfreien und lesbaren Code zu fördern
phil294
2
MDN-Dokumente sollten diese Dokumentaktualisierungen widerspiegeln: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
nardecky