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。