什么是"DefinitelyTyped"?

Ven*_*sh 29 typescript definitelytyped typescript-typings

我看到"DefinitelyTyped"与TypeScript/JavaScript开发有关,但我无法理解它的用法或一些代码示例来理解它.

我查看了 http://definitelytyped.org/ 和http://bartvds.github.io/projects/dt.html,但无法更好地理解它.

任何指针,文章,代码示例都非常感谢.

Fre*_*oux 55

TypeScript允许您拥有声明文件,这些文件允许您描述用(例如)纯JavaScript编写的代码形状.因此,通过引用其中一个文件,您可以准确地告诉TypeScript您应该如何"键入"您使用的JavaScript代码或库.当然,这意味着需要仔细编写声明文件并与您正在使用的JavaScript库同步.

对于许多JavaScript库而言,DefinitelyTyped是最受欢迎的声明文件存储库,其中大多数JavaScript库不提供自己的声明文件(因为它们不是使用TypeScript开发的,并且不承诺使用它).因此它保存社区维护的声明文件.

通过使用DefinitelyTyped及其包含的声明文件,您可以使用大多数流行的JavaScript库,就像它们是TypeScript库一样,您将通过编译器进行类型验证(如声明文件所示).此外,如此受欢迎,社区将策划DefinitelyTyped以包含有效的声明文件(尽管,Web开发的移动速度非常快,您最终可能会在不明显的库中找到一些问题).

这有帮助吗?

  • "这有帮助吗?" 是. (3认同)
  • 谢谢。解释清楚了! (2认同)

Tat*_*tsu 15

上面的描述很清楚,但是,如果您像我一样,也许下面的代码可以帮助您了解大局。

例如,您lodash的项目中有包,然后导入并使用它的方法。

import random from 'lodash/random';

const result = random(????);
Run Code Online (Sandbox Code Playgroud)

您可能会停下来想知道此方法可能需要多少个参数?每个参数什么样的数据?您必须搜索lodash主页,找到其API文档random以了解如何使用它。在完成一堆任务之后,您可能最终会提供错误的参数顺序,但是在您运行应用程序并得到错误之前,什么都不会显示。

这是DefinitelyType显示其力量的地方。安装lodash的DefinitelyType之后

yarn add @types/lodash
Run Code Online (Sandbox Code Playgroud)
  • 当您开始键入random方法时,将显示工具提示并指导您如何使用参数。
  • 当您提供错误的参数数据类型时,它将显示错误,以便您立即知道并进行修复。

是否有意义?如果不是,请不要担心,请关闭音乐并收听此视频,我相信您会理解的。