什么是“DefinitelyTyped”?

问题描述 投票:24回答:2

我看到“DefinitelyTyped”是与TypeScript / JavaScript开发相关的东西,但我无法理解它的用法或一些代码示例来理解它。

我看着http://definitelytyped.org/http://bartvds.github.io/projects/dt.html,但不能更好地理解它。

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

typescript typescript-typings definitelytyped
2个回答
49
投票

TypeScript允许您拥有Declaration Files,这些文件是allow you to describe the shape代码(例如)纯JavaScript编写的文件。因此,通过引用其中一个文件,您可以准确地告诉TypeScript您应该如何“键入”您使用的JavaScript代码或库。当然,这意味着需要仔细编写声明文件并与您正在使用的JavaScript库同步。

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

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


11
投票

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

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

import random from 'lodash/random';

const result = random(????);

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

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

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

是否有意义?如果没有,不要担心,关闭音乐,听听这个video,我相信你会明白的。

© www.soinside.com 2019 - 2024. All rights reserved.