#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"]