首页 > 解决方案 > 为什么 vscode 源代码包含手动编写的 vscode.d.ts 文件?

问题描述

手动编写 .d.ts 文件通常只有在处理已经存在的 .js 文件时才有意义。如果你的项目是用 TypeScript 编写的,你不应该.d.ts手动编写——带有选项的编译器--declaration会生成它们。

这个问题中,我提到了文件https://github.com/microsoft/vscode/blob/master/src/vs/vscode.d.ts作为手动编写 .d.ts 文件的示例。该项目在 TypeScript 中完全实现。那么,为什么 vscode 开发团队决定使用这种不寻常的方式来进行 API 声明,而不是从源代码生成呢?

标签: typescriptvisual-studio-codearchitecture

解决方案


那是因为他们想要定义接口,vscode.d.ts与实现分开。您可以在此处找到该vscode模块的实现:

https://github.com/microsoft/vscode/blob/b449c95a8460443ee6bf985bb6c8db63d395e6e6/src/vs/workbench/api/common/extHost.api.impl.ts#L1065

如果他们没有实现接口中定义的东西,编译就会失败。您可以尝试删除该属性version


推荐阅读