TypeScript的对象如何进行类型声明

使用字面量去类型声明

  • 可以使用,;换行作为分隔符分割属性
  • 给字面量声明的对象赋值时,属性的个数值的类型都要符合定义时候的声明(除了 ? 可选属性和 索引签名 的情况)
ts 复制代码
let person1: { name: string, age: number } // ,逗号作为分隔符
let person2: { name: string; age: number } // ;分号作为分隔符
let person3: { // 回车作为分隔符
  name: string
  age: number
}

?可选属性的定义

  • ?加在key后面,表示该属性为可选属性
ts 复制代码
let person1: { name: string, age?: number }

索引签名,任意数量的属性的定义

索引签名:允许定义对象可以具有任意数量的属性,这些属性的键和类型是可变的,常⽤于:描述类型不确定的属性,(具有动态属性的对象)。

  • [key: string]: any允许定义对象可以具有任意数量的属性,这些属性的键和类型是可变的。(其中的key表示形参可以用任何字符串替换)
ts 复制代码
// 限制person对象必须有name属性,可选age属性但值必须是数字,同时可以有任意数量、任意类型的其他属性
let person: {
  name: string
  age?: number
  [key: string]: any // 索引签名,完全可以不⽤key这个单词,换成其他的也可以
}
相关推荐
豆苗学前端6 分钟前
你所不知道的前端知识,html篇(更新中)
前端·javascript·面试
一 乐8 分钟前
绿色农产品销售|基于springboot + vue绿色农产品销售系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端·宠物
zzjyr8 分钟前
Webpack 生命周期原理深度解析
前端
xiaohe060111 分钟前
💘 霸道女总裁爱上前端开发的我
前端·游戏开发·trae
sophie旭13 分钟前
内存泄露排查之我的微感受
前端·javascript·性能优化
3***688418 分钟前
Spring Boot中使用Server-Sent Events (SSE) 实现实时数据推送教程
java·spring boot·后端
k***19521 分钟前
Spring 核心技术解析【纯干货版】- Ⅶ:Spring 切面编程模块 Spring-Instrument 模块精讲
前端·数据库·spring
C***u17622 分钟前
Spring Boot问题总结
java·spring boot·后端
上进小菜猪22 分钟前
基于 YOLOv8 的人体与行人检测智能识别实战 [目标检测完整源码]
后端
Elieal36 分钟前
5 种方式快速创建 SpringBoot 项目
java·spring boot·后端