Ok işlevlerini ES6 / 7'de dışa aktarmak mümkün mü?


102

Aşağıdaki dışa aktarma ifadesi bir sözdizimi hatası veriyor

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

neden ?

Yalnızca adlandırılmış işlevleri dışa aktarabiliyorum

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

Nedeni ne?


4
Hata aslında ne diyor?
Andy

2
Burada iyi çalışıyor: astexplorer.net/#/0fv5UXttsP .
Felix Kling


1
sözdizimi hatası nedir?
omarjmh

1
Varsayılan bir dışa aktarımı adlandıramazsınız.
Felix Kling

Yanıtlar:


168

Ok işlevlerini ES6 / 7'de dışa aktarmak mümkün mü?

Evet. exportihraç etmek istediğiniz değer umurunda değil.

Aşağıdaki dışa aktarma ifadesi bir sözdizimi hatası veriyor ... neden?

Varsayılan bir dışa aktarmanız olamaz ve ona bir ad veremezsiniz ("varsayılan" zaten dışa aktarmanın adıdır).

Ya yap

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

veya

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

4
Aşağıdakiler nasıl çalışır o zaman varsayılan hello = () => {console.log ("neden olumsuz oylama")}
jozzy

3
x = ydeğerine çözümlenen bir atama ifadesidir y. Değişken bir açıklama değil. x = yİfade koyabileceğiniz her yere koyabilirsiniz. Not:x Önceden tanımlanmamışsa, bu katı modda atar .
Felix Kling

2
peki ya normal ihracat? şöyle bir şey yapmak mümkün export () => {/*body*/} as getUsers;mü :? yoksa önce tanımlayıp sonra dışa aktarmam mı gerekiyor?
Tomasz Mularczyk

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

3
@Burrich: Olması gerektiği şekilde kullanılabildiği sürece bir fonksiyonun nasıl yaratıldığı önemli olmamalı.
Felix Kling

19

Varsayılan bir dışa aktarma istemiyorsanız, şu sözdizimi ile adlandırılmış bir işlevi kolayca dışa aktarabilirsiniz:

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

Böylece yerine export function yourFunctionName () {koyarsınız export const yourFunctionName = () => . Karakter uzunluğu aynıdır, ancak bu bölümde yazım hatası yapma olasılığı yüksektir = () =>. Dürüst olmak gerekirse, bana daha az okunabilir ve daha fazla iş hissettiriyor :)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.