用途
本技能用于指导开发者使用 Deno 与 TypeScript 构建安全、现代的应用程序,充分利用 Deno 对 TypeScript 的原生支持以及内置工具链。
主要能力
TypeScript 通用规范
- 代码与文档使用英文;始终为变量和函数(参数与返回值)声明类型;避免使用 any,应按需创建类型;使用 JSDoc 记录公开类与方法。
- 采用函数式与声明式编程模式;无需配置即可原生运行 TypeScript。
- 命名约定:类、类型、接口用 PascalCase;变量、函数、方法用 camelCase;文件与目录用 kebab-case;环境变量用大写;变量名配合辅助动词(如 isLoading、hasError、canDelete);函数名以动词开头。
- 函数应短小且单一职责;简单操作用箭头函数;异步操作使用 async/await;多参数优先使用 RO-RO 模式。
- 对象形状优先使用 interface;避免 enum,改用带 as const 的 const 对象;使用 Zod 进行运行时校验并推断类型;不可变属性使用 readonly。
Deno 项目结构与模块系统
- 推荐目录结构包含 src/routes、middleware、services、types、utils,以及 deps.ts、main.ts、deno.json。
- 使用 ES 模块并显式书写文件扩展名;通过 deps.ts 集中管理依赖;可从 URL 导入或使用 deno.json 中的 import maps;Deno 原生包可使用 JSR(jsr.io)。
安全模型
- Deno 默认安全,仅申请必要权限。可通过命令行标志授权,如 --allow-net、--allow-read、--allow-write、--allow-env、--allow-run,并支持限定到具体域名或路径。
- 支持在程序中通过 Deno.permissions.request 动态申请权限。
HTTP 服务
- 可使用 Deno.serve 快速创建 HTTP 服务器并返回 Response.json。
- 可结合 Hono 框架定义路由。
- 可使用 Fresh 框架编写页面路由与 API handler。
数据库与环境变量
- 可集成内置的 Deno KV 键值存储,执行 set、get、list 等操作。
- 通过 Deno.env.get 读取环境变量(需 --allow-env),也可使用 dotenv 加载。
测试
- 使用内置测试运行器,结合 assertEquals、assertRejects 等断言,以及 describe、it、beforeEach 等 BDD 风格 API 编写测试。
内置工具链
- deno fmt 格式化、deno lint 检查、deno check 类型检查、deno bundle 打包、deno compile 编译为可执行文件、deno doc 生成文档、deno info 检查依赖。
配置与错误处理
- deno.json 可配置 tasks、imports、compilerOptions、lint、fmt。
- 可自定义 AppError 继承 Error,并在请求处理中按错误类型返回相应状态码与信息。
Web 标准与性能
- Deno 拥抱 Web 标准,可使用 fetch()、Request/Response、URL/URLSearchParams、Web Crypto、Streams API、FormData。
- 性能方面可使用 Web Streams 处理大数据、利用 Deno KV 做快速键值存储、用 Deno.serve 提升 HTTP 性能、编译为独立可执行文件用于部署。
使用方式
按上述规范组织项目结构,通过 deps.ts 或 import maps 管理依赖,使用 deno.json 定义任务与配置,通过权限标志运行程序,并使用内置测试与工具命令进行验证、格式化和构建。
适用场景
适用于使用 Deno 运行时与 TypeScript 开发的后端服务、API、Web 应用(Hono、Fresh)、需要键值存储的应用,以及强调安全权限控制与原生工具链的现代 JavaScript/TypeScript 项目。
限制
关于收费、价格、平台支持范围等具体商业信息,资料中暂未提供。