【问题标题】:Typescript Typings and NPM打字稿类型和 NPM
【发布时间】:2017-11-13 02:23:20
【问题描述】:

我很高兴 NPM 现在内置了对导入 TypeScript 类型包装器的支持。但是,我发现这些维护方式不一致。例如,我尝试导入“node-git”和“@types/node-git”,虽然两者都有效,但它们似乎是非常不同的 API,不能很好地协同工作。

在这种情况下,最佳做法是什么?我应该先导入库的类型包装器,检查其版本,然后专门导入该版本的库吗?我是否需要快速创建自己的 TypeScript 包装器(它们可以由工具生成)吗?

提前感谢您的任何见解!

【问题讨论】:

  • 一个 javascript 库和一个 typescript 包装器可能是来自不同人的两个不同项目,大多数 js 库都有这种情况,因为并非所有 js 开发人员都使用 typescript
  • 至于“工具生成”,如果库用 JSDocs 记录得很好,那么也许这个可以做到:github.com/englercj/tsd-jsdoc
  • 这些都是有用的 cmets。谢谢!

标签: typescript npm definitelytyped


【解决方案1】:

没有明确的“最佳做法”。 Imo 你应该使用你想要的任何版本的库(即node-git)。如果有对应于该版本的类型包,那就太好了。如果没有,请考虑在DefinitelyTyped 中创建一个 PR(假设 types 包由 DefinedTyped 维护)。如果您不能等待 PR 被合并,您可以将更新后的 index.d.ts 文件添加到您的项目中,并使用 typeRoots 编译器选项告诉 typescript 文件在哪里。

例如,如果您将更新后的类型添加到 src/types/node_git/index.d.ts,然后将其添加到您的 tsconfig.json

{
    "compilerOptions": {
        "typeRoots": ["src/types", "node_modules/@types"]
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 2018-11-10
    • 2020-01-23
    • 2021-11-26
    • 2019-03-12
    • 2017-09-26
    • 2021-04-20
    相关资源
    最近更新 更多