Skip to content

TypeScript:代码旁边的数据说明书

JavaScript 负责运行,TypeScript 多加了一层检查,提前告诉你:“这里应该收到什么样的数据。”

从冒号开始读

ts
function sleep(ms: number): Promise<void>
text
sleep(ms: number): Promise<void>
↑      ↑           ↑
函数名  ms 必须是数字   返回一个不带具体值的 Promise

冒号后面常常就是类型。string 是文字,number 是数字,boolean 是真假。

看懂 interface

来自 manga_studio/canvas-v2/src/api.ts

ts
export interface ProjectSummary {
  id: string
  title: string
  canvas_id: string | null
  deleted_at?: string | null
}
  • | 读作“或者”:canvas_id 是文字或者空值。
  • ? 读作“这个字段可以没有”。
  • 读类型时先问三件事:输入是什么?输出是什么?哪些字段可能没有?

类型报错怎么处理

Type 'string' is not assignable to type 'number' 的意思是:“这里需要数字,但你给了文字。”不要先用 any 消掉提示,先找数据为何变成了错误类型。

deleted_at?: string | null 里的 ? 和 | 分别表示什么?

答案:? 表示这个字段可以完全不存在;| 表示存在时可以是 string 或 null。

写给想驾驭 AI,而不只是依赖 AI 的 Vibe Coder。