.d.ts文件中的typescript代码,一般只是用来做类型声明的,不会编译出js代码。
而且,.d.ts文件,是为了给ide识别用来开发用的,你写代码时候,ide会给你自动提示,这些功能就是ide识别到了.d.ts文件的结果。
在打包时候,打包工具也不是打包进的.d.ts文件,而是真正的代码文件。
并不是只有用ts写项目才会由.d.ts。一般各种第三方库,js写的,也都提供了对应的.d.ts文件。第三放库,大多数时候,你并不需要关心源码怎么样,只需要关心有哪些方法是让你用的。而.d.ts中一般就包含了这些方法的声明,还有备注和注释。
ide把你引向的这个.d.ts文件,并不是说你打包就会用这个文件,只是帮助你开发时候去查阅这个第三方库暴露出来的方法。
我给你举个.d.ts辅助开发的例子:
比如,你的模块里,要用到一个Cat的类,这个类有个mew的方法。而这个Cat类是由你的同事实现的,但是他还没写好。这样,你也就没什么地方引真正的代码,但是你得继续开发你的模块呀。
这时候,如果你在你的模块里,直接用Cat类,ide就会给你提示找不到这个类,当然也就不会有对mew方法的自动补全提示了。
但是,你如果写一个.d.ts文件,文件名无所谓。里面声明好类接口,就能有自动提示了。