Экспорт класса модуля из другого модуля - PullRequest
0 голосов
/ 26 июня 2018

У меня есть модуль netmap, который экспортирует класс по умолчанию NetMap:

export default class NetMap {...}

У меня есть другой модуль helloworld, и я хочу экспортировать (не какdefault) весь класс NetMap, чтобы другой модуль мог получить доступ к NetMap, используя:

import * as helloworld from 'helloworld'

const x = helloworld.NetMap()

Возможно ли это?Как будет выглядеть export из NetMap в модуле helloworld?

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

netmap.js

export default class NetMap {
    ...
}

helloworld.js (обычно называется ствол ):

import NetMap from './netmap.js';
import Foo from '...';
import ...

export {
    NetMap,
    Foo,
    ...
};

Затем в другоммодуль:

import * as helloworld from './helloworld.js';

const x = new helloworld.NetMap();

Но я лично предпочитаю использовать именованные операции импорта / экспорта, поэтому я бы сделал это вместо этого:

netmap.js

export class NetMap {
    ...
}

helloworld.js (обычно называется ствол ):

export { NetMap } from './netmap.js';
export { Foo } from '...';
export { ...

Затем в другом модуле:

import * as helloworld from './helloworld.js';

const x = new helloworld.NetMap();

Или:

import { NetMap } from './helloworld.js';

const x = new NetMap();
0 голосов
/ 26 июня 2018

Я думаю, что могу сказать, что вы пытаетесь сделать, и это, безусловно, кажется возможным.Но дайте мне знать, если я неправильно понял.

Итак, у вас есть файл netMap ...

// netMap.js
class NetMap {
    constructor(a,b) {
        this.a = a
        this.b = b
    }
}

export default NetMap

, тогда у вас есть файл helloworld, который использует netmap, а также, возможно, некоторые другие вещи....

// helloworld.js
const netMap = require('./netMap')
// import netMap from 'netMap'

const helloWorld = _ => console.log('hello world!')

module.exports = { netMap, helloWorld }
export { netMap, helloWorld }

и теперь у вас есть третий файл, для которого вы собираетесь импортировать весь привет мир ...

// otherModule.js
var helloWorld = require('./helloworld')
// import * as helloWorld from 'helloworld'
const x = new helloWorld.netMap(2,3)

console.log(x.a, x.b)
...