为Typescript lib生成一个声明文件

时间:2013-10-30 08:33:10

标签: typescript declaration tsc

我在VS2013中开发了一个包含Typescript文件的库。这些文件正确编译为js文件(AMD)。

我想要的是为这个lib创建一个声明文件。但

  

tsc --declaration --module AMD --out out.d.ts [files.ts]

不起作用。

有人可以带我走正确的道路吗?

使用TypeScript 0.9.1.1。

4 个答案:

答案 0 :(得分:3)

您可以随时使用命令行调用来执行此操作。在Visual Studio中,使用以下内容作为构建后事件命令行调用:

del $(OutDir)combined.d.ts
type $(OutDir)*.d.ts > $(OutDir)combined.d.ts

可能需要$(ProjectDir)Some\Other\Path\*.d.ts等。有关详情,请参阅here

答案 1 :(得分:1)

因为你提供的.d.ts将用js内容覆盖声明文件。 此外,您需要删除module amd,因为它适用于每个文件(不是 - 友好,请参阅http://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1

所以,试试:

tsc [files.ts] --declaration --out out.js

将生成out.d.ts

答案 2 :(得分:0)

除了Andy W的回答,您还需要删除参考路径线。使用FIND执行此操作。

del "$(ProjectDir)bin\combined.d.ts"
type "$(ProjectDir)*.d.ts" "$(ProjectDir)subFolder1\*.d.ts" "$(ProjectDir)subFolder2\*.d.ts" | FIND /V /I "/// <reference path="  > "$(ProjectDir)bin\combined.d.ts"

答案 3 :(得分:0)

  

为Typescript库生成一个声明文件。

您不需要这样做(或者至少您没有为此提供用例)。

您的输出文件夹,例如/module/bar应该看起来像:

  • index.js <为.js生成了/module/bar.ts
  • index.d.ts <为.d.ts生成了/module/bar.ts

当用户需要/module/bar时,运行时解析为.js,而TypeScript类型系统则自动解析为.d.ts

示例