Skip to content
Go back

TypeScript 插件开发指南

Edit page

下面这份指南把”从 0 到能独立写 Obsidian / VS Code 插件”的 TypeScript 路线拆成 4 个阶段,每阶段给出”目标-资源-作业-坑点”四件套,按需取用即可。整个周期 3–6 周(每天 1–2 h)。


阶段 0 环境 & 心态(半天) 目标:让 .ts 文件能跑起来。
资源:

  1. 全局装 ts-node:pnpm add -g ts-node
  2. 新建 playground/01-hello.ts
    const msg: string = 'Hello TS'
    console.log(msg.toUpperCase())
  3. 命令行跑 ts-node 01-hello.ts,看到 HELLO TS 就过关。
    坑点:

阶段 1 类型系统 48 h 目标:把任何 JS 文件重写成 “零 any” 的 TS,且编译器不报错。
资源:

坑点:


阶段 2 工程化与官方类型(1 周) 目标:能给真实项目(Obsidian/VS Code)搭出可调试、可热重载、带 lint + 测试的骨架。
资源:

作业:

  1. 把官方 TS 模板 git clone 下来,pnpm i → pnpm dev,能在编辑器里断点即及格。
  2. tsconfig.json 的 5 个最常用开关默写出来:
    target、module、moduleResolution、strict、esModuleInterop。
  3. 配置 eslint + prettier,规则集用 eslint-config-standard-with-typescript,保存即自动修复。
  4. 写第一个命令:
    Obsidian 版:「在当前文件末尾插入今日日期」
    VS Code 版:「在终端里执行 git rev-parse --short HEAD 并回显」
    要求:F5 调试窗口能断到源码 .ts,而不是编译后的 .js

坑点:


阶段 3 进阶类型体操 & 实战(1–2 周) 目标:能读懂并改写社区插件里常见的“复杂类型”,同时写出带单元测试的模块。
资源:

作业:

  1. 实现一个 Result<T,E> 类型,要求:
    • 编译期保证必须先判断 .ok 才能访问 .value
    • 运行时提供 map/flatMap
      写完补 100 % 分支覆盖的测试。
  2. 把 Obsidian 的 Plugin 类声明文件 obsidian.d.ts 里你最常用的 3 个 API 抄一遍,并加上中文注释,发 Gist。
  3. 给 VS Code 写一个 TreeView 示例:左侧树节点点击后,在编辑器插入对应 snippet。要求节点图标用 Codicon,且支持多级嵌套。

坑点:


阶段 4 持续精进(长期)

  1. 每周读一次 TS 4.x/5.x 发布笔记,把新语法(如 satisfies、const type parameters)立刻用到自己插件里。
  2. 跟踪社区模板:
    • github.com/liamcain/obsidian-calendar-plugin(学习大型插件的架构)
    • github.com/microsoft/vscode-python(看微软怎么写百万行级 TS)
  3. 自己发插件 → 收集 issue → 回炉重构,循环 3 轮,基本就“出师”了。

速查小抄(打印贴墙)

场景口诀
不知道用 interface 还是 type对外公共 API 用 interface,内部工具类型用 type
泛型推导失败先写函数签名再写实现,别先 any 后改
打包体积大import * as moment from 'moment' 换成 import moment + esbuild tree-shaking
调试不进断点检查 sourceMap: trueoutFiles 路径

一句话总结
“先把类型当测试,再把工程当产品,最后用插件刷经验值。”
按上面 4 个阶段一路打怪升级,你就能用 TypeScript 写出让别人愿意装、愿意 star 的 Obsidian / VS Code 插件。祝编码愉快!


Edit page
Share this post on:

Previous Post
AstroPaper 5.0
Next Post
个人DashBoard设计指南