Преобразовать старый пакет javascript для экспорта модуля typescript

#javascript #typescript #ecmascript-6

#javascript #typescript #ecmascript-6

Вопрос:

Я получил этот старый пакет javascript, который мне нужно использовать в современном приложении typescript.

 !(function (t, e) {
..
  (window.TradingView = window.xx || {}), (window.xx.version = r), (t.version = r), (t.widget = s), Object.defineProperty(t, "__esModule", { value: !0 });
});
  

Typescript жалуется, что из этого файла не экспортирован модуль.

Есть ли какой-нибудь простой способ экспортировать это, чтобы оно работало в typescript?

Комментарии:

1. У вас также есть исходный код пакета? То, что вы опубликовали, является перенесенной и уменьшенной версией.

2. Вы пытаетесь конвертировать или использовать JS-файл?

3. @Bergi У меня есть только перенесенная уменьшенная версия. Это программа для умиротворения, поэтому я не могу поделиться ею.

4. Затем вам нужно будет вручную удалить IIFE (хотя опубликованный вами код выглядит не совсем правильно) и export свойства этого t объекта.

Ответ №1:

Если вы знаете, что экспортирует пакет, вероятно, самым простым способом было бы написать файл с объявлениями. Вы создаете TradingView.d.ts где-нибудь и пишете объявления для экспортируемого класса:

 declare class TradingView {
  field1: bool

  method1(arg1: number): void
  method2(arg2: string): Map
}
  

Затем вам нужно включить этот файл либо с помощью директивы с тройной косой чертой

 /// <reference path="./path/to/TradingView.d.ts" />
  

Или в tsconfig :

 "include": ["...", "./path/to/TradingView.d.ts"]