TS对象类型 -- 接口(interface)

/**
 * 对象类型 -- 接口
 */
//在面向对象的语言中,接口(interfaces)是对行为的抽象,而具体如何行动需要类(class)去实现
//在Ts中的接口是非常灵活的概念,除了对行为抽象之外,他还对形状进行了描述
//1.
interface Person {
  name: string;
  age: number;
}
//变量使用接口时,形状必须和接口相同,或多或少、类型不同都是不允许的
let tom: Person = {
  name: "tom",
  age: 12
};

//2.可选属性 ?
interface Person2 {
  name: string;
  age?: number;
}
let tom2: Person2 = {
  name: "tom2"
};

//3.任意属性
interface Person3 {
  name: string;
  age?: number;
  [proName: string]: any;
  //[proName: string]: stingr; 这种情况,age就会报错,因为number不属于string类型的子集
}
//一旦定义了任意属性,他就会影响确定属性和可选属性的类型
//任意属性之外的其他属性的类型,也必须符合任意属性的类型
let tom3: Person3 = {
  name: "tom3",
  age: 15,
  gender: "any"
};

//4.只读属性
interface Person4 {
  readonly id: number;
  name: string;
}
let tom4: Person4 = {
  id: 12,
  name: "tom4"
};
tom4.name = "tom44";
//只读的约束属性在于第一次给对象赋值的时候,而不是给只读属性赋值的时候
//tom4.id = 123; 会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值