ts重点学习40-索引签名笔记
  TEZNKK3IfmPf 2023年11月12日 11 0
export default {}

/*
- 定义: 索引签名用于描述那些“通过索引得到”的类型
- 格式: 如`[props: string]:any`
- 应用场景: 解决参数问题
*/
interface IFullName {
firstName: string
lastName: string
age: number
singName: string
[props: string]: any
}

// 注意点: 我们一旦定义好接口,就确定了变量或者形参,我们使用接口进行约束的时候,就必须一模一样

// 少一个或者少多个参数的情况 可选属性
// let goddess1:IFullName = {firstName: "邱", lastName: "淑贞"};
// let goddess2:IFullName = {firstName: "邱", lastName: "淑贞", age: 18};


// 多一个或者多多个
// 方案一: 使用变量 不推荐
let info = {firstName: "邱", lastName: "淑贞", age: 18, singName: "赌王", dance: "兔子舞"};
let goddess3:IFullName = info;

// 方案二: 使用类型断言
let goddess4:IFullName =
({firstName: "邱", lastName: "淑贞", age: 18, singName: "赌王", dance: "兔子舞", abc: false}) as IFullName;


interface Ibeauty {
[props: string]: string
}
// 注意点: 对象中的键,最终都会被转化为字符串
let name: Ibeauty = {
name1: "邱淑贞",
name2: "古力娜扎",
name3: "周慧敏",
// name4: 123
// 123: 123
}

// 方案三: 使用索引签名

let goddess5:IFullName =
{firstName: "邱", lastName: "淑贞", age: 18, singName: "赌王",
dance: "兔子舞", abc: 123, bcd: false};
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月14日   60   0   0 数据库mysql索引
  TEZNKK3IfmPf   2023年11月14日   28   0   0 mysql索引
  TEZNKK3IfmPf   2023年11月14日   47   0   0 索引javascript
  TEZNKK3IfmPf   2024年05月17日   48   0   0 查询mysql索引
  TEZNKK3IfmPf   2024年03月29日   58   0   0 mysql索引
TEZNKK3IfmPf