TypeScript—Interface 接口

一、 Interface 接口 定义Object的类型

  1. 对对象的属性和方法进行类型定义
  2. Duck Typing (鸭子类型)
  3. Interface 是JavaScript中不存在的概念,所以Interface 不会被转换成JavaScript,Interface 只是用来做类型的静态检查
// ts 建议在变量名前,加一个I,告诉别人这是Interface类型
interface IPerson {}

// 定义一个接口
interface Person {
	name:string;
	age: number;
}
公式: interface + 变量名 + 大括号 + 属性名 + 数据类型

// 约束接口Person的实例xiao 必须 和接口Person的数据类型一致
let xiao: Person = {
	name: 'xiao',
	age: 24
}
// xiao1报错,因为xiao1实例少了一个属性
let xiao1: Person = {
	name: 'xiao'
}
// id: 1报错,因为xiao1实例多了一个属性
let xiao1: Person = {
	name: 'xiao',
	age: 24,
	id: 1
}

// 把属性定义为可选,使用问号?
interface Person {
	name:string;
	age?: number;
}
// 成功,因为age是可选属性
let xiao: Person = {
	name: 'xiao',
}

// 只读属性,readonly ,只能在声明实例的时候赋值,其他时候不可以修改,作用相当于const
interface Person {
	readonly id: number;
	name: string,
	age?: number,
}
// 声明一个Person 实例
let xiao: Person = {
	id: 1,
	name: 'xiao',
	age: 20
}
xiao.id = 123 // id会报错,因为id只可以读取,不可以编辑

参考视频:慕课网课程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帝博格T-bag

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值