Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么纯Typescript项目包含.d.ts定义?_Typescript - Fatal编程技术网

为什么纯Typescript项目包含.d.ts定义?

为什么纯Typescript项目包含.d.ts定义?,typescript,Typescript,为什么Typescript项目包含.d.ts定义。。。似乎适得其反 如果已经用TypeScript开发了一个库(比如Angular2),并且TS transpiler可以使用源.TS文件进行intellisence,那么为什么我一直看到在TS项目中包含.d.TS文件 现在,您可以通过tsd可执行文件轻松生成.d.ts定义,但我看不到逻辑 问候, 肖恩归根结底是分配问题。通过npm/bower引用项目提供了一个“主”文件,该文件是javascript,而不是typescript。因此,Typesc

为什么Typescript项目包含.d.ts定义。。。似乎适得其反

如果已经用TypeScript开发了一个库(比如Angular2),并且TS transpiler可以使用源.TS文件进行intellisence,那么为什么我一直看到在TS项目中包含.d.TS文件

现在,您可以通过tsd可执行文件轻松生成.d.ts定义,但我看不到逻辑

问候,


肖恩

归根结底是分配问题。通过npm/bower引用项目提供了一个“主”文件,该文件是javascript,而不是typescript。因此,Typescript项目的编译输出最好是:

a) 传输的javascript文件,可能已缩小

b) 描述类型注释的.d.ts文件(有点像C中的头文件)


在typescript中分发没有多大意义,因为它要么会阻止javascript项目使用它,要么会需要npm包的单独typescript版本

ts源项目的编译(或transpilation,如果您愿意的话)具有以下输出1)一个js文件(或多个),它只是普通的es5 js文件2)一个.d.ts定义文件,它描述了原始项目的类型约束(在转换为js时丢失)。第二个文件用于类型检查和使用已编译(js+.d.ts)项目时的自动完成。。。我个人也希望看到TypeScript源代码,不仅仅是头文件(.d.ts),我想这就是Github的用途。。。再一次,回答得好!