TypeScript Interface 用法速查
· 3 min read
Interface 是 TS 定义对象/数组结构的主力工具——核心是 形状契约,不是类继承。
- 对象类型:
interface Person { name; age }限定对象必须有哪些字段 - 可选字段:
name?: string表示可有可无 - 只读字段:
readonly age防止外部修改 - 索引签名:
[key: string]: any描述动态字段 - Duck typing:TS 是结构化类型,多余字段传入不报错
对象类型:核心用法
interface Person {
name: string
age: number
}
const p1: Person = { name: 'Kimi', age: 20 } // OK
const p2: Person = { name: 'Kimi', a: 20 } // Error: 'a' 不存在
const p3: Person = { name: 'Kimi', age: '100' } // Error: age 类型错
接口是形状契约——变量必须按形状填齐字段,多一个少一个都不行。