如果启用了sourcemap,则可以在浏览器上进行调试。同样,在寻找clarification和clarificationMap的用例。
我已经在Internet上进行了搜索,但是我的坏人除了生成.d.ts文件之外找不到实际的用例。
答案 0 :(得分:2)
随着应用程序的增长,Typescript进行类型检查和编译代码所花费的时间将越来越长。对于大型代码库,缓慢的编译时间会严重减慢您的开发速度。为了克服这个问题,从Typescript 3.0开始,您可以使用Project References将大项目分成较小的子项目。 declaration
和declarationMap
选项在这里起着重要作用。
declaration
选项启用declaration
选项将导致Typescript编译器创建声明文件(.d.ts
)。 .d.ts
文件包含在相应.ts
文件中使用的类型的声明。它们不包含类型的实现,而仅包含可公开访问的类型声明。
因此,任何人都可以在其他Typescript项目中使用您TypeScript项目中的类型。编译器可以在您的.d.ts
文件的帮助下对其他项目中的代码进行类型检查,即使他们无权访问您的项目。
当您将一个大项目拆分为多个较小的子项目时,这很有用。子项目可以访问彼此的声明文件。当您的一个子项目(例如B)依赖于另一个子项目(例如A)中声明的类型时,编译器将使用子项目A中的.d.ts
文件进行类型检查和编译。项目B,而无需再次编译子项目A。这样可以在大型项目中缩短编译时间。
declarationMap
选项启用declarationMap
选项时,Typescript编译器将创建声明源映射(.d.ts.map
)文件。声明源映射文件包含映射定义,这些定义将.d.ts
文件中生成的每个类型声明链接回原始源文件(.ts
)。这些文件中的映射定义为JSON格式。
这些由编辑器/ IDE使用。您将能够使用“转到定义”和“重命名”等编辑器功能来浏览和编辑子项目中的代码。这意味着,例如,如果您在一个子项目中重命名类型,则更改也会传播到其他子项目中。
请注意,即使您不拆分项目,也可以使用这些选项。如果要为.d.ts
文件提供编辑器功能“转到定义”,此功能将非常有用。如果您在.d.ts
文件的声明中单击“转到定义”,则会将您带到源文件(.ts
)的位置,而不是.d.ts
的位置。但是这些选项在拆分项目中确实很有用。
就是这样!希望有帮助。
如果您的项目包含150个左右的文件,建议使用Project References将其拆分为较小的子项目。
答案 1 :(得分:1)
生成.d.ts
文件正是declaration
编译器选项的用例,因此生成输出为.js
,而所有类型定义仍可以保留给其他消耗您项目的TS项目
IDE可以利用declarationMap
选项提供更好的开发人员体验:当您当前有一个对应的.d.ts
文件打开并想要查看其原始文件时,它使您可以快速导航到原始源。实现(另请参见this answer)。
在--declaration旁边启用--declarationMap会使编译器在输出.d.ts文件的旁边发出.d.ts.map文件。语言服务现在还可以理解这些映射文件,并使用它们将基于声明文件的定义位置映射到其原始源(如果可用)。
换句话说,在使用--declarationMap生成的.d.ts文件中的声明上进行定位定义会将您带到定义该声明的源文件(.ts)位置,而不是.d.ts。