这个项目能做什么

Definitely Typed 是一个托管 JavaScript 包高质量 TypeScript 类型定义的仓库。它是发布到 npm 的 @types/* 包背后的来源,使 TypeScript 开发者能够以类型化方式访问那些不自带声明文件的库。 关键方面: - 类型定义从 npm 安装,例如 `npm install --save-dev @types/node`。对于作用域包,命名约定将 `@` 替换为空段并使用双下划线,例如 `@babel/preset-env` 对应 `@types/babel__preset-env`。 - 该仓库组织为 pnpm monorepo。每个包位于 `types/` 下自己的目录中,通常包含 `index.d.ts`、`-tests.ts` 文件、`tsconfig.json` 和 `package.json`。 - 贡献通过 pull request 处理。项目使用 dtslint 对声明文件进行类型检查并运行 lint。测试使用 `$ExpectType` 断言和 `@ts-expect-error` 注释来验证行为。 - README 包含编辑现有包、创建新包、当库开始自带类型时移除包,以及使用 `pnpm test <package>` 运行测试的说明。 - Definitely Typed 仅在两年以内的 TypeScript 版本上测试包。较旧的 @types 包可能仍有针对更早 TypeScript 版本的 dist-tags,但支持窗口有限。 - 该仓库对贡献有明确的政策:新定义应由真实的个人使用驱动,禁止自动化批量 PR。编码代理必须在 PR 标题中标记 `[auto-generated]`,并且不允许向该仓库提交多个 PR。 - README 提供多种语言版本,包括西班牙语、韩语、俄语、简体中文、葡萄牙语、意大利语、日语和法语。还链接了用于维护者流程的管理手册。 Definitely Typed 在 TypeScript 生态系统中被广泛使用,以填补包不提供自身类型声明时的空白。其贡献工作流、自动化检查以及庞大的维护者社区有助于为流行库保持类型定义的更新。