web-dev-qa-db-fra.com

Classe d'export / import Javascript

Pourquoi cet exemple ci-dessous ne génère-t-il pas "bonjour le monde"? Au lieu de cela, je reçois:

TypeError: _base2.default.test n'est pas une fonction

(il est en cours de transcription avec Babel)

file1.js

import Example from './file2';
console.log(Example.test());

file2.js

export default class Example {
  test() {
    console.log('hello world');
  }
}
8
Alan P.

Vous importez uniquement la classe, mais ne créez pas d'instance de la classe

Essayer

var myInstance = new Example()
myInstance.test()
16
James Maa

Si vous souhaitez appeler une méthode en tant que méthode de classe (sans créer d'instance d'objet), vous pouvez essayer des méthodes statiques.

Vous pouvez modifier le fichier2.js comme,

export default class Example {
  static test() {
    console.log('hello world');
  }
}

puis appelez-le en utilisant le nom de classe dans file1.js comme

import Example from './file2';
console.log(Example.test());

Reportez-vous James Maa réponse si vous voulez l'appeler comme méthode d'instance.

10
prabushitha