我在 Visual Studio 2013 中开发了一个库,其中还包含 TypeScript 文件。这些文件正确编译为 JS 文件 (AMD)。
我想要的是为这个库创建一个声明文件,但这不起作用:
tsc --declaration --module AMD --out out.d.ts [files.ts]
有人可以带领我走向正确的道路吗?
使用 TypeScript 0.9.1.1。
我在 Visual Studio 2013 中开发了一个库,其中还包含 TypeScript 文件。这些文件正确编译为 JS 文件 (AMD)。
我想要的是为这个库创建一个声明文件,但这不起作用:
tsc --declaration --module AMD --out out.d.ts [files.ts]
有人可以带领我走向正确的道路吗?
使用 TypeScript 0.9.1.1。
这是因为您提供.d.ts
的内容将用 js 内容覆盖声明文件。此外,您需要删除module amd
,因为它适用于每个文件(不是 --out 友好,请参阅http://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1)
所以,试试:
tsc [files.ts] --declaration --out out.js
这将产生out.d.ts
事后你总是可以通过命令行调用来做到这一点。在 Visual Studio 中,使用以下命令作为生成后事件命令行调用:
del $(OutDir)combined.d.ts
type $(OutDir)*.d.ts > $(OutDir)combined.d.ts
可能需要$(ProjectDir)Some\Other\Path\*.d.ts
,等等。请参阅此处了解更多信息
除了 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"
为 Typescript lib 生成一个声明文件。
您不需要这样做(或者至少您还没有为它提供用例)。
例如,您的输出文件夹/module/bar
应如下所示:
index.js
<.js
为/module/bar.ts
index.d.ts
<.d.ts
为/module/bar.ts
当用户需要/module/bar
运行时解析为.js
,TypeScript 类型系统.d.ts
自动解析为。