【问题标题】:Convert an old javascript package to export a typescript module转换旧的 javascript 包以导出 typescript 模块
【发布时间】:2020-08-18 23:06:27
【问题描述】:

我得到了这个旧的 javascript 包,需要在现代打字稿应用程序中使用。

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

Typescript 抱怨它没有从这个文件中导出模块。

有什么简单的方法可以导出它以便在打字稿中工作?

【问题讨论】:

  • 你也有这个包的源代码吗?您发布的是经过转译和缩小的版本。
  • 您是转换还是使用JS文件?
  • @Bergi 我只有转译的缩小版。这是一个宣传软件,所以我不能分享它。
  • 然后您需要手动剥离 IIFE(尽管您发布的代码看起来不太正确)和 exportt 对象的属性。

标签: javascript typescript ecmascript-6


【解决方案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"]

【讨论】:

    猜你喜欢
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多