DefinitelyTyped是否适合新的TypeScript定义?

时间:2017-03-21 15:13:28

标签: typescript typescript-typings definitelytyped

根据https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/

  

DefinitelyTyped仍然是创作新声明的地方   文件。

但我们不清楚为什么我们会在DefinitelyTyped创建新的定义,而不是直接将它们提交给NPM。

由于DT现在如此庞大,继续添加到该回购集似乎具有效果。 DT直接向NPM发布有什么优势?

2 个答案:

答案 0 :(得分:3)

对于不提供自己的软件包,DefinitelyTyped repo被视为类型声明的认可社区存储库。

回答这个问题取决于你说什么时的意思

  

直接将其提交给NPM。

如果您的意思是包含带有的.d.ts文件,那么.d.ts文件就会被鼓励。例如,moment包包含并维护自己的声明文件。

如果您的意思是提供您自己的仅类型包,那么DefinitelyTyped是这些文件的更好位置,并将提供一些优势。通过将文件包含在DefinitelyTyped中,它将

  • 受益于TS typings bot自动部署到@types namespace
    • 也将在编译器中产生可预测的模块分辨率。
  • 是长期建立的打字来源。你会成为人们寻找的地方。
  • 更容易被他人维护。
    • 该包将更容易找到
    • 维护者将使用他们熟悉的工作流程和格式

答案 1 :(得分:1)

要添加到Paarth的答案,在DefinitelyTyped中提供您应该考虑的额外好处:

  • 旧版TypeScript语言版本的自动版本标签。如果您将定义文件发送到自己的包中,那么您和您的消费者必须就使用哪个版本的TypeScript达成一致。如果它在DefinitelyTyped上,当您更新定义文件时,@types发布者将自动标记旧版TS版本的最新兼容版本(例如TS 2.1上的人可以npm install @types/yourpkg@ts2.1获得2.1兼容的版本)
  • 来自DefinitelyTyped维护者的免费维护。通常,DT可以通过编写新的TSLint规则并在整个代码库中应用它们来查找定义文件错误
  • 更好的版本控制 - 您可以更轻松地为库的多个版本提供并排定义,并将这些版本独立于底层库