我看到" DefinitelyTyped"是与TypeScript / JavaScript开发相关的东西,但我无法理解它的用法或一些代码示例来理解它。
我看着 http://definitelytyped.org/和http://bartvds.github.io/projects/dt.html,但无法更好地理解它。任何指针,文章,代码示例都非常感谢。
答案 0 :(得分:48)
TypeScript允许您拥有Declaration Files,这些文件是allow you to describe the shape代码编写的文件(例如)纯JavaScript。因此,通过引用其中一个文件,您可以准确地告诉TypeScript您应该如何使用您正在使用的JavaScript代码或库#34;键入"。当然,这意味着需要仔细编写声明文件并与您正在使用的JavaScript库同步。
DefinitelyTyped是许多JavaScript库中最受欢迎的声明文件存储库,其中大多数JavaScript库都没有提供自己的声明文件(因为它们不是使用TypeScript开发的,并且不承诺使用它)。因此它保存了社区维护的声明文件。
通过使用DefinitelyTyped及其包含的声明文件,您可以使用大多数流行的JavaScript库,就像它们是TypeScript库一样,您将通过编译器进行类型验证(如声明文件所示)。此外,如此受欢迎,社区将策划DefinitelyTyped以包含有效的声明文件(尽管,Web开发的移动速度非常快,您最终可能会在模糊的库中发现一些问题)。
答案 1 :(得分:10)
上面的描述很清楚,但是,如果您像我一样,下面的代码也许可以帮助您了解大局。
例如,您的项目中有lodash
包,然后导入并使用其中的一种方法。
import random from 'lodash/random';
const result = random(????);
您可能会停下来想知道此方法可能需要多少个参数?每个参数什么样的数据?您必须搜索lodash
主页,找到random
的API文档,以了解如何使用它。在完成一堆任务之后,您可能最终会错误地提供参数顺序,但是在运行应用程序并得到错误之前,什么都不会显示。
这是DefinitelyType
展示其力量的地方。安装lodash的DefinitelyType之后
yarn add @types/lodash
random
方法时,将显示工具提示并指导您如何使用参数。 这有意义吗?如果没有,请不要担心,请关闭音乐并听一下video,我相信您会理解的。