关于TypeScript中的“* .d.ts”

由于是TypeScript的新手,我对“* .d.ts”感到好奇。 有人告诉我,这种文件就像C ++中的“头文件”,但只是js文件。 但是我不能将一个纯粹的js文件转换为“* .d.ts”文件,除非我强制将“js”改为“ts”。 所以我有三个文件:一个js文件,一个ts文件和一个* .d.ts文件。


1)他们之间有什么关系?

2)我怎样才能使用“* .d.ts”文件? 这是否意味着我可以永久删除“* .ts”文件?

3)如果是这样,“* .d.ts”文件如何知道哪个js文件映射到自己?


非常感谢! 如果有人能给我一个例子,这将是非常好的。

“d.ts”文件用于提供关于用JavaScript编写的API的打字稿types信息。 这个想法是,你正在使用像jQuery或下划线,现有的JavaScript库。 你想要消耗你的打字稿代码。

而不是重写jQuery或下划线或打字稿中的任何东西,而是可以编写仅包含types注释的d.ts文件。 然后从你的打字稿代码中获得静态types检查的打字稿好处,同时仍然使用纯JS库。

d代表申报文件 :

当一个TypeScript脚本被编译时,有一个选项可以生成一个声明文件(扩展名为.d.ts),作为编译JavaScript中组件的接口。 在这个过程中,编译器会去掉所有的函数和方法体,只保留输出types的签名。 当第三方开发人员使用TypeScript时,可以使用生成的声明文件来描述JavaScript库或模块的导出的虚拟TypeScripttypes。

声明文件的概念类似于在C / C ++中find的头文件的概念。

 declare module arithmetics { add(left: number, right: number): number; subtract(left: number, right: number): number; multiply(left: number, right: number): number; divide(left: number, right: number): number; } 

types声明文件可以手动写入现有的JavaScript库,就像jQuery和Node.js一样。

stream行JavaScript库的大量声明文件集合保存在GitHub的DefinitelyTyped和Typings Registry中。 提供了一个名为typings的命令行工具来帮助从存储库中search和安装声明文件。