Как экспортировать внутреннюю функцию из (экспортированного по умолчанию) внешнего константного блока? - PullRequest
0 голосов
/ 05 мая 2020

У меня есть этот код в файле «Strings. js»:

const Strings = {
    getString(str) {
        ... // some logic
    },
    ... // more functions
}

export default Strings;

Я хочу импортировать как все (строки), так и / или только функцию getString из другого файла, например:

import Strings, { getString } from '../../utils/Strings';

или, может быть, просто:

import { getString } from '../../utils/Strings';

, чтобы иметь возможность писать просто getString, а не Strings.getString (в нескольких строках ).

Когда я пытаюсь его использовать, я получаю следующую ошибку:

Attempted import error: 'getString' is not exported from '../../utils/Strings'.

Извините, если этот вопрос уже был задан, я не смог найти ответ .

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Вам нужно либо

function getString (str) {
}
const Strings = {
    getString
}
export default Strings
export { getString }

, или

const Strings = {
  getStrings(str) {
  }
}

const { getStrings } = String

export default Strings
export { getString }

Таким образом, нет прямого способа экспортировать свойство объекта

0 голосов
/ 05 мая 2020

Вы должны использовать именованный экспорт, а не объект:

export function getString(str) {
    … // some logic
}
… // more functions

Затем вы можете импортировать их как объект пространства имен

import * as Strings from '../../utils/Strings';

… Strings.getString(…) …

или напрямую

import { getString }  from '../../utils/Strings';

… getString(…) …

Если вы абсолютно хотите / вам нужно написать import Strings from '…'; (вы действительно не должны), вам нужно будет добавить объект экспорта по умолчанию:

… // function declarations

export default { getString }
...