typescript笔记:接口

typescript 接口定义: 

interface 接口名称{ 

}

在接口里面定义属性,例如: 

interface Iperon {
    firstName: string,
    lastName: string
}

在接口里面定义函数,例如:

interface Iperson{
    firstName: string.
    lastName: string,
    say: (arg1: string, arg2: string) => boolean
}

只有参数列表和返回值类型的函数定义。参数列表里的每个参数都需要名字和类型

需要注意接口不能转换为 JavaScript。 它只是 TypeScript 的一部分。所以在编译好的js代码中是没有接口这部分代码的。

在接口里面定义数组,例如:

interface Iperson {
	name: string,
	age: number,
	say:(aa:number) => string
	[index:number]: string
}

var p1: Iperson = {
	name: 'tmac',
	age: 18,
	say: function(a:number):string {
		return 'hello'
	}
};

p1[0] = '12'
console.log(p1[0])

接口里面定义了数组,index索引值可以规定为数值或者字符串,后面是规定数组每一项元素的类型。既然变量p1是接口类型Iperson,接口类型Iperson里面定义了数组,那么p1也可以当作一个数组。根据接口中数组的定义,这个数组的index索引必须是数字,每一项元素必须是字符串。

只读属性和可选属性:readonly  和  ?

interface Iperson2 {
	readonly name: string, //readonly 表示该属性只读,不可设置更改
	age: number,
	height?: number //? 表示该属性是可选属性,对象里面该属性可有可无,加不加都不会报错
}

var person2: Iperson2 = {
	name:'kzt',
	age:18
}

person2.name = 'kzt2' // 编译报错,name属性是只读的,所以不可以更改

接口继承

接口继承就是说接口可以通过其他接口来扩展自己。typescript 允许接口继承多个接口。

继承使用关键字 extends。

单接口继承语法格式:

Child_interface_name extends father_interface_name {
}

多接口继承语法格式:

Child_interface_name extends father_interface1_name,father_interface2_name,......,father_interfaceN_name {
}
interface father1 {
	n1: number
}
interface father2 {
	n2: number
}
interface child extends father1,father2{
	n3: string
}
var res:child = {n1:12, n2:24, n3:'abc'};
console.log(res)  //{n1: 12, n2: 24, n3: "abc"}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值