2017-09-22 6 views
-1

Pourquoi cet exemple ci-dessous ne sort pas "hello world"? Au lieu de cela, je reçois:Javascript export/import class

TypeError: _base2.default.test is not a function

(il est transpiled avec Babel)

file1.js

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

file2.js

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

Répondre

1

Vous importent seulement la classe, mais n ot faire une instance de la classe

Essayez

var myInstance = new Example() 
myInstance.test() 
1

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

Vous pouvez modifier les file2.js que,

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

puis l'appeler en utilisant le nom de calss dans file1.js comme

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

Référez-James Maa réponse si vous voulez appeler comme une méthode d'instance.