【问题标题】:What is "DefinitelyTyped"?什么是“明确类型”?
【发布时间】:2017-02-15 20:33:52
【问题描述】:

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

我看了 http://definitelytyped.org/http://bartvds.github.io/projects/dt.html 但无法理解。

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

【问题讨论】:

    标签: typescript typescript-typings definitelytyped


    【解决方案1】:

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

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

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

    【讨论】:

    • “有帮助吗?”是的。
    • 谢谢。解释清楚!
    【解决方案2】:

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

    例如,你的项目中有lodash包,你导入并使用它的一个方法。

    import random from 'lodash/random';
    
    const result = random(????);
    

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

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

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

    这有意义吗?如果没有,别担心,关掉音乐,听听这个video,相信你会明白的。

    【讨论】:

    • 我的公司不使用打字稿,但我可以只使用普通的 javascript 从这些中受益吗?
    • 类型总是有助于使代码更具可读性和可维护性。
    • 出色的响应和视频。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 2017-11-02
    • 2020-05-12
    • 2010-10-17
    相关资源
    最近更新 更多