Экспорт модуля на основе файла js - без изменения исходного файла - PullRequest
0 голосов
/ 06 мая 2020

У меня есть файл. js, скажем, original.js:

var a = function(){};
var b = "something";

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

//Original file content:
var a = function(){};
var b = "something";
//My addition:
var MyModule = {a : a, b : b};
export { MyModule };

Но я хочу, чтобы весь связанный с модулем код хранился в другом файле, а original.js оставался нетронутым. Затем я хочу импортировать новый файл вместо файла original.

Идея состоит в том, чтобы взять старый сторонний файл .js и сделать его импортируемым.

EDIT

Я понял, что искал клавиатуру declare вместо export. Я создал файл original.d.ts, который выглядит так:

declare var a : Function;
declare var b : string;

Что позволяет мне импортировать его следующим образом:

import 'src/original';

Однако с этим решением есть две проблемы:

  1. Я действительно хотел дать псевдоним original, поскольку a и b могут сбивать с толку без их контекста, но теперь, когда он объявил членов и не экспортирует, я не могу этого сделать (import * as Original from 'src/original' сказал бы, что это не модуль).
  2. Я должен явно объявить каждую переменную / функцию из original.js

Спасибо!

1 Ответ

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

Экспортируйте модуль отсюда; Создайте новый файл (например: index. js) Импортируйте модуль в index.js

import Module1 from './Module1.js'

экспортируйте их, используя

export { Module1, Module2, ... , Modulen };
...