Typings 项目 (https://github.com/typings/typings) 已经发展,目前可以使用绝对类型作为生态系统的一个子集。 这种改进有效地使 TSD 维护变得多余,随着时间的推移,定义应该被编写为带有typings.json
外部模块,或者与库内联转换,以便 TypeScript 编译器直接使用。
当 Typings 的官方网站创建并可以链接到改进的文档时,此问题将关闭。 目前,它用作新用户或现有用户的通知。
要继续安装来自绝对类型的类型定义,请记住使用--ambient
标志(绝对类型中的所有内容本质上都是“全局的”)。 如果您打算使用没有类型定义的依赖项发布库(例如,您安装了来自绝对类型/类型的类型),您将需要确保这些是依赖项(而不是环境)。 全局依赖的核心问题是维护和冲突。
typings install node --save --ambient
TSD PR 和问题将继续得到响应,但开发实际上是 EOL。 如果其他开发人员愿意进行维护和/或开发,欢迎您贡献。 现有的问题应该已经用 Typings 解决了,但如果你发现一些不起作用 - 在 Typings 中提出问题。
链接: https : //github.com/typings/discussions/issues/5和https://github.com/typings/typings/issues/125。
编辑:Typings 为 TSD 用户实施了升级命令。 升级只会将tsd.json
的格式转换为typings.json
,您可能需要进行其他调整(例如更正现在删除的引用)。
typings init --upgrade
:+1:
供参考以从 tsd 升级
网络包+打字稿
https://github.com/angular/universal-starter/commit/cfb7b52b12e1da9de7ee7c2a452e7636c93aaa09
gulpjs+打字稿
https://github.com/angular/answers-app/pull/27/files
带有打字稿的 gulpjs
https://gist.github.com/gdi2290/e544407980e261acc172
命令
$ npm uninstall tsd
$ rm -rf typings
$ npm install typings
$ typings init --upgrade
$ rm tsd.json
$ typings install
只是对@gdi2290迁移步骤的一个小补充,关于我刚刚发生的事情。
如果有人遵循它并在编译过程中以数百TS2300: duplicate indetifier ...
,解决方案在这里https://www.npmjs.com/package/typings#maindts -and-browserdts
你如何用打字来做tsd link
?
你如何用打字机做 tsd 链接?
你没有。 TSD 链接有缺陷,并不是真正可靠的长期解决方案——因为它依赖于环境模块,导致重复的标识符,并且通常会迫使用户重新安装子依赖项。 假设你想要完全相同的东西,你可以做typings install npm:<library>/<path-to-d-ts> --ambient
。 最有可能的是,您需要一个不同的解决方案来正确处理子依赖项。 在这种情况下,将您的typings.json
文件与您的库一起发布并执行typings install npm:<library> --save
- <library>/typings.json
的依赖项将得到解决。
从另一个存储库安装类型时遇到问题。 创建了一个新问题: https :
只是想知道这里对于绝对类型/tsd 与打字的愿景/意图是什么? 我知道 Typings 是去中心化的,并且它可以与绝对类型化对话,但我也知道 Typings 也有一些流行项目的存储库......因此我的问题。
强制所有类型定义都强制集中在 npm 包安装中而不是在我们本地项目中复制一半的基础架构是否有意义?
JSPM 就是一个令人震惊的例子
NPM 已经有配件来支持和处理这个。
有人甚至对瞬态依赖的影响进行理论分析吗?
我不会把我的孩子送到托儿所,它会将任务转交给其他地方的另一个托儿所......最终会断开连接......更不用说在整个生态系统中漫游的单一瞬态依赖了。
@nhhockeyplayer理想情况下就是这种情况,但要发生这种情况,每个作者都需要包含和维护类型定义。
有关的
对于 Angular 2,我们可以假设每个 ng2 模块都将包含类型定义,但对于其他模块可能并非如此。 因此,将会有一个社区 (ng2) 通过确保其生态系统中的每个模块都包含类型定义(理想情况)而受益更多。
@blakeembrey很抱歉npm 上,这可能导致人们在最初不知道该包已弃用的情况下仍在使用它。 这可能是因为软件包被弃用后没有新版本。
如果您安装 NPM,它会说。
编辑:但我会检查它并发布一个新版本。
酷,然后就好了👍
你能在npm 页面添加弃用通知吗?
使返回者更容易弄清楚打字。
首先发布typings
完整和完成版本然后弃用tsd
会很酷,因为现在typings
只会使事情变得更加困难,并且与多个回购 IMO 的混乱混淆。 😠
这个问题页面上有四个问题,现在可以追溯到几个月前,指出 tsd 不再用于安装基本包,如 jquery 或 react。 弃用或停止开发是一回事,但看起来 tsd 实际上已被关闭(?)。 这是一个真正的问题——尤其是因为似乎没有一种明确的公告服务会彻底停止——因为 tsd 是一种可以成为自动化部署一部分的工具。 我刚刚让一个 Web 服务自行终止,因为它的自动部署运行 tsd,而 tsd 不再有效。
它说它在安装时已被弃用一年多了。 由于 TSD 基于 GitHub,所以它仍然可以正常工作。 您将看到的是绝对类型的更改。 TSD 架构无法处理这些变化,而此举是 TypeScript 决定支持 NPM @types
。
最有用的评论
:+1:
供参考以从 tsd 升级
网络包+打字稿
https://github.com/angular/universal-starter/commit/cfb7b52b12e1da9de7ee7c2a452e7636c93aaa09
gulpjs+打字稿
https://github.com/angular/answers-app/pull/27/files
带有打字稿的 gulpjs
https://gist.github.com/gdi2290/e544407980e261acc172
命令