Импортировать в JS определенным образом

В TS у меня Класс 1 из класс.тс, некоторые функции из helper.ts, некоторые переменные из переменные.ts:

Например, переменные.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';
import * as variables from './utils/common-variables';
export { variables };

Все нормально, когда мне нужны все переменные переменные.ts. Я могу сделать это в своем файле .js:

import { variables } from 'api';

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

import { variables.test1 as test } from 'api';

вы также можете повторно экспортировать каждую переменную из api.ts, как в export * from './utils/common-variables';. Затем вы можете импортировать отдельные переменные непосредственно из api, как в import { test1 } from 'api'

Giovanni Gonzaga 26.06.2019 18:02

Вы имеете в виду экспортировать два раза './utils/common-variables'; ? Один раз, чтобы получить все в одной переменной, а другой раз в каждой переменной? @ДжованниГонзага

PierBJX 26.06.2019 18:07

Да, не обязательно предлагать это, просто говоря, что это возможно

Giovanni Gonzaga 26.06.2019 19:04
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
3
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Нет, этот конкретный синтаксис — невозможно - ImportSpecifier может быть только именем, а не выражение доступа к атрибуту, как у вас.

Однако вы можете просто импортировать их напрямую из api/utils/common-variables и избавиться от реэкспорта.

Очень грустно ... :'-(

PierBJX 26.06.2019 16:07

Однако я не могу импортировать вот так «api/utils/common-variables», потому что он связан и минимизирован с помощью веб-пакета @AKX.

PierBJX 26.06.2019 16:15

Вы можете импортировать один модуль из импорта и переименовать его, как хотите, в машинописном тексте. Это было упомянуто в документации, читать здесь

образец:

import { ZipCodeValidator as ZCV } from "./ZipCodeValidator";
let myValidator = new ZCV();`

Надеюсь, это поможет.

Другие вопросы по теме