Ist es möglich, Pfeilfunktionen in ES6 / 7 zu exportieren?


92

Die folgende Exportanweisung gibt einen Syntaxfehler aus

export default const hello = () => console.log("say hello")

Warum ?

Ich kann nur benannte Funktionen exportieren

export function hello() {
  console.log("hello")
}

Was ist der Grund?


4
Was sagt der Fehler eigentlich?
— Andy

2
Funktioniert hier gut: astexplorer.net/#/0fv5UXttsP .
— Felix Kling


1
Was ist der Syntaxfehler?
— Omarjmh

1
Sie können keinen Standardexport benennen.
— Felix Kling

Antworten:


151

Ist es möglich, Pfeilfunktionen in ES6 / 7 zu exportieren?

Ja. exportkümmert sich nicht um den Wert, den Sie exportieren möchten.

Die folgende Exportanweisung gibt einen Syntaxfehler aus ... warum?

Sie können keine haben Standard - Export und geben Sie ihm einen Namen ( „default“ ist bereits der Name des Exports).

Entweder tun

export default () => console.log("say hello");

oder

const hello = () => console.log("say hello");
export default hello;

4
Wie funktioniert das unten, dann exportieren Sie Standard Hallo = () => {console.log ("warum die Abwertung")}
— jozzy

3
x = yist ein Zuweisungsausdruck, der in den Wert von aufgelöst wird y. Es ist keine Variablendeklaration. Sie können x = yüberall einen Ausdruck einfügen. Hinweis: Dies wird im strengen Modus ausgelöst, wenn dies xnicht zuvor definiert wurde.
— Felix Kling

2
Was ist mit regelmäßigen Exporten? ist es möglich so etwas zu tun wie : export () => {/*body*/} as getUsers;? oder muss ich es erst definieren und dann exportieren?
— Tomasz Mularczyk

43
@Tomasz:export const getUser = () => {...};
— Felix Kling

3
@Burrich: Es sollte keine Rolle spielen, wie eine Funktion erstellt wurde, solange sie so verwendet werden kann, wie sie sein soll.
— Felix Kling

10

Wenn Sie keinen Standardexport wünschen, können Sie einfach eine benannte Funktion mit folgender Syntax exportieren:

export const yourFunctionName = () => console.log("say hello");

So ersetzen Sie export function yourFunctionName () {mit export const yourFunctionName = () => . Die Zeichenlänge ist gleich, aber es besteht eine hohe Wahrscheinlichkeit, dass in diesem Abschnitt ein Tippfehler gemacht wird = () =>. Ehrlich gesagt, für mich fühlt es sich weniger lesbar und mehr Arbeit an :)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.