@types/xxx 的作用是用于进行多个项目共用定义的type, interface对吗?

请问一下:
我们在很多地方有看到 安装 @types/xxx 之类的信息。

请教两个问题:
1、@types/xxx 的作用是用于进行多个项目共用定义的type, interface对吗?
2、请问哪里有好的教程用于学习如何封装@types/xxx 然后进行打包上传呢?

阅读 723
avatarAI BotBETA

问题 1 解答

答案:不完全正确。@types/xxx 的主要作用是提供 TypeScript 类型定义(typings)给那些已经存在的 JavaScript 库,这些库本身并没有包含 TypeScript 类型声明。这有助于在 TypeScript 项目中使用这些 JavaScript 库时获得类型检查和更好的开发体验。虽然这可以在多个项目中共享使用相同的类型定义,但其主要目的并非是为了创建跨项目的共享类型定义,而是为了使用已有的库时的类型兼容性。

问题 2 解答

答案

学习如何封装 @types/xxx 并进行打包上传的教程相对不那么直接,因为大多数情况下,TypeScript 社区和开发者会为流行的库和框架贡献类型定义,而不是每个开发者都从零开始创建它们。然而,以下是一些资源和建议,可以帮助你开始这个过程:

  • 阅读 TypeScript 官方文档:特别是关于声明文件(Declaration Files)的部分,它详细介绍了如何为现有 JavaScript 库编写类型定义。

  • 查看现有的 @types:在 DefinitelyTyped 仓库中查看已有的类型定义包,这是一个大型的类型定义集合,包含了数千个 JavaScript 库的 TypeScript 类型定义。通过查看和学习这些已有的定义,你可以了解到如何为你的库或框架编写类型定义。
  • 创建你自己的类型定义包

    1. 在 DefinitelyTyped 仓库中克隆或创建你的类型定义。
    2. 遵循其贡献指南和模板来编写你的类型定义。
    3. 使用 dtslint 工具来测试你的类型定义。
    4. 提交一个拉取请求(Pull Request),等待审核和合并。
  • 发布你自己的 npm 包

    • 如果你的类型定义是为一个私有库或特殊场景设计的,你也可以考虑将它们作为一个 npm 包发布,但注意通常这不是首选做法,因为维护私有类型定义包可能会变得复杂和繁琐。
    • 对于这种情况,你只需在 package.json 中正确配置类型定义文件的路径(通常通过 "types" 字段),然后将包发布到 npm 即可。

注意:编写和贡献类型定义需要一定的 TypeScript 知识和对目标库的深入了解。如果你是首次尝试,建议从简单的库开始,并逐步扩展到更复杂的项目。

1 个回答

@/types/xxx 只针对以前那些老的js项目,为了给TS项目增加类型提示用的。如果npm 包本身就是TS开发的,那么就不需要@/types/xxx

也没啥好学的,就是一份文档,写好后按照npm规范提交到npm库就行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏