【发布时间】: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