【问题标题】:use typescript generics from vanilla javascript in vscode extension在 vscode 扩展中使用来自 vanilla javascript 的 typescript 泛型
【发布时间】:2017-02-10 05:02:41
【问题描述】:

我正在使用 JavaScript 创建一个 VSCode 扩展,并构建一个自定义 TextDocumentContentProvider,它需要具有特定签名,但在 TypeScript 中进行了描述。它的onDidChange 成员必须是Event<Uri> 类型,这当然使用泛型。关于 TextDocumentContentProvider 的文档可以在这里找到:https://code.visualstudio.com/Docs/extensionAPI/vscode-api#_a-nametextdocumentcontentprovideraspan-classcodeitem-id436textdocumentcontentproviderspan

当然,在“vanilla”JavaScript 中,没有泛型之类的东西。为了满足 TypeScript 中描述的正确签名,在 JavaScript 中返回的正确内容是什么?

这是我目前的实现:

function PostWindow() {
    this.onDidChange = ????;

    this.provideTextDocumentContent = function(uri) {
        return "test content";
    }
}

exports.PostWindow = PostWindow;

【问题讨论】:

  • 您可以在 TS 中编写一些使用此 API 的演示代码,并查看 TSC 从中生成了什么。
  • 感谢@MikeLischke,这很有效。我拿了一个有效的 TS 示例并查看了 vscode 编译的输出 JS。我创造了这样的东西,效果很好:gist.github.com/kindohm/83070f1a6f8e0055937a2a40c158fef5
  • 我想我可以发表我的评论作为答案:-)

标签: javascript typescript generics visual-studio-code vscode-extensions


【解决方案1】:

使用 TSC 将 TS 代码转换为 JS,看看如何实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 2018-04-09
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    相关资源
    最近更新 更多