我开发了一个包含大量javascript项目(VS项目)的大型应用程序。现在,我正在考虑将JS逐步转换为TypeScript。
我使用了许多外部库,例如JQuery,Knockout Js等,并将他们的d.ts文件下载到其中一个项目中。我的每个项目都必须生成自己的d.ts文件。我在VS中找到了“生成源地图”设置,所以我得到了那个。
我意识到我很快就会有大量的d.ts文件需要包含在几乎所有项目中。我事先可以看到这将是一个巨大的问题。我用谷歌搜索了一下,但也许我错了。找不到一个好方法。
正如我所看到的,最好的解决方案是,如果所有项目都从某种常见类型定义文件夹中获取其类型定义。这有可能吗?
答案 0 :(得分:3)
首先,请记住.d.ts文件(以下称类型声明文件)仅适用于JavaScript代码的类型定义。如果您在TypeScript中编写代码,则不会有声明文件。只有.ts。
在纯TypeScript项目中,您通常会在TypeScript中拥有所有代码,并且您将拥有的唯一类型声明文件是第三方依赖项,例如: jquery.d.ts,bootstrap.d.ts等。
如果您的项目是纯TypeScript,我将使用NuGet管理所有这些类型声明文件。使用NuGet安装依赖项,并使用NuGet安装类型声明文件。然后,NuGet可以管理整个解决方案的依赖关系。
如果您的项目不是纯TypeScript,也就是说,您一次转换它,并且您为尚未移植到TypeScript的JavaScript代码创建类型声明文件,那么我建议您添加类型声明在单个文件中,linking that file声明到需要它的所有项目中。然后,您可以为所有类型声明设置一个位置。
另一个注意事项:源映射和.d.ts文件彼此无关。源映射是将TS代码行映射到JS代码行的JSON文件。如果您愿意,这有效地允许您在浏览器中调试TypeScript。