Экспорт нескольких переменных в одну - PullRequest
0 голосов
/ 24 июня 2019

В TS у меня есть Class1 из class.ts , некоторые функции из helper.ts , некоторые переменные из variables.ts :

Например, variables.ts выглядит так:

export const test1 = 'test1';
export const test2 = 0;
export const test3 = 'test3';
export const test4 = 'test4';

Затем в Webpack я даю api.ts как запись для построения модуля.

api.ts

export { Class1 } from './class1';
export { helper1, helper2 } from './helper';
export * from './variables';

Вот так, в моем веб-приложении, в JS, я импортирую то, что мне нужно из этого модуля.Однако вместо того, чтобы импортировать каждую переменную следующим образом:

import { test1, test2, test3, test4 } from 'api';

Я хотел бы знать, возможно ли импортировать что-то вроде этого:

import { variables } from 'api';
test1 = variables.test1;

или что-то вроде:

import { variables.test1, variables.test3} from 'api';

Что я должен изменить в TS для этого?

Ответы [ 4 ]

2 голосов
/ 24 июня 2019

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

import * as variables from './variables';
export { variables };

См. Также: "объект пространства имен модуля" в этой статье от Mozilla.

2 голосов
/ 24 июня 2019

Просто используйте объект-оболочку с именем variables:

export const variables = {
  test1: 'test1',
  test2: 0,
  test3: 'test3',
  test4: 'test4'
};
1 голос
/ 24 июня 2019

Чтобы завершить ответ Джека Башора, я бы предложил export default

// variables.js
export default const variables = {
  test1: 'test1',
  test2: 0,
  test3: 'test3',
  test4: 'test4'
};


// file.js
import nameYouWant from 'variables'
consol.log(nameYouWant.test1);
// ...
1 голос
/ 24 июня 2019

Вот как RXJS решает эту проблему:

https://github.com/ReactiveX/rxjs/blob/master/src/internal/umd.ts

api.ts

export { Class1 } from './class1';
export { helper1, helper2 } from './helper';

import * as _variables from './variables';
export const variables = _variables;
...