📝 docs(typescript): clarify ts and js support boundaries

This commit is contained in:
csh
2026-02-25 13:19:48 +08:00
parent 1f46203299
commit 9ac8a4c8a4
5 changed files with 29 additions and 11 deletions
+6 -4
View File
@@ -1,12 +1,13 @@
# TypeScript 代码风格
# TypeScript/JavaScript 代码风格
本 Playbook 的 TypeScript 代码风格以 Google TypeScript Style Guide 为基线:
本 Playbook 的 TypeScript/JavaScript 代码风格以 Google TypeScript Style Guide 为基线:
- Google TypeScript Style Guide: https://google.github.io/styleguide/tsguide.html
- TypeScript 官方手册: https://www.typescriptlang.org/docs/handbook/
## 项目约定
- 适用范围:业务代码默认使用 `.ts/.tsx``.js/.mjs/.cjs` 仅用于脚本、工具链或配置
- 行宽:100(与 Prettier 配置保持一致)
- 缩进:2 空格
- 引号:单引号(Prettier `singleQuote: true`
@@ -15,15 +16,16 @@
## 类型约定
- 禁止 `any`;需要宽泛类型时用 `unknown` 并做类型收窄
- TypeScript 禁止 `any`;需要宽泛类型时用 `unknown` 并做类型收窄
- 优先使用 `interface` 描述对象结构;`type` 用于联合/交叉/工具类型
- 函数返回类型:公共 API 必须显式标注;内部实现可依赖推断
- 泛型参数名:单字母(`T``K``V`)或描述性名称(`TItem`
- JavaScript 文件建议启用 `// @ts-check` 与 JSDoc 进行静态检查
## 模块约定
- 使用 ES Module`import`/`export`);禁止 `require()`(除 `.cjs` 文件)
- 每文件一个主要导出;避免桶文件(`index.ts` re-export 过多)
- 每文件一个主要导出;避免桶文件(`index.ts`/`index.js` re-export 过多)
- 路径别名:以 `tsconfig.json``paths` 为准
## 异步约定
+3 -2
View File
@@ -2,8 +2,9 @@
## 文件与目录
- 文件名:`kebab-case.ts` / `kebab-case.tsx`
- 测试文件:`kebab-case.test.ts` / `kebab-case.spec.ts`
- 文件名:`kebab-case.ts` / `kebab-case.tsx` / `kebab-case.js` / `kebab-case.jsx`
- 脚本/配置文件:`kebab-case.mjs` / `kebab-case.cjs`
- 测试文件:`kebab-case.test.ts` / `kebab-case.spec.ts` / `kebab-case.test.js` / `kebab-case.spec.js`
- 类型声明文件:`kebab-case.d.ts`
- 目录名:`kebab-case/`
+8 -1
View File
@@ -1,4 +1,4 @@
# TypeScript 工具链
# TypeScript/JavaScript 工具链
本 Playbook 推荐以下工具保证代码一致性与质量:
@@ -7,6 +7,7 @@
- `eslint`:风格检查与静态分析(配合 `@typescript-eslint`
- `vitest` / `jest`:测试(按项目选择)
- `tsx` / `ts-node`:直接运行 `.ts` 文件(开发/脚本场景)
- `node`:运行 `.js/.mjs/.cjs` 脚本
## 常用命令(示例)
@@ -22,6 +23,12 @@ pnpm add -D typescript prettier eslint typescript-eslint
tsc --noEmit
```
JavaScript 检查(可选,启用 `allowJs` + `checkJs`):
```bash
tsc --noEmit --allowJs --checkJs
```
格式化:
```bash