ts中的接口

ts中的接口

属性修饰符一览:

修饰符名作用
readonly定义只读属性
定义可选属性

接口一览:

接口类型特点
普通接口普通类型
索引接口允许定义任意多的键值对
类类型接口对类中的内容进行约束, 使用 implements 关键字实现接口
继承接口继承父接口的属性
函数接口约束函数的参数和返回值

普通类型接口

interface Person {
  name: string
  readonly age: number定义只读属性
  sex?: string//定义可选属性
}
const o: Person = {
  name: 'a',
  age: 1
}
function a(text:Person){
  console.log(text)
}
a(o)
console.log(o) // {name: 'a', age: 1}
o.name='b'
console.log(o) // {name: 'b', age: 1}
o.age = 2//编译报错:只读属性不能修改

索引类型接口
当不确定对象中有哪些属性时, 可以使用索引类型签名 ,允许定义任意多的键值对

interface index {
  [key: string]: string
}
const obj: index = {
  a: '1',
  b: '2',
  c: '3',
}
console.log(obj)//{a:"1",b:"2",c:"3"}

interface UserArr{
    [index:number]:string
}
var arr:UserArr=['111','222']
console.log(arr);//['111', '222']

类类型接口
对类中的内容进行约束, 使用 定义一个接口, 使用 implements 关键字实现接口

interface Dog {
  name: string
  wang(): string
}
 
// 类实现一个接口通过关键字 implements
class D1 implements Dog {
  name: string
  wang() {
    return this.name
  }
  constructor(name: string, wangstr: string) {
    this.name = name
  }
}
 
const demo = new D1('hei', 'shagou')
console.log(demo.name)
console.log(demo.wang())

继承接口
子接口继承父接口的属性

interface Animal {
  parent: string
}
 
interface Dog extends Animal {
  child: string
}
 
const dog: Dog = {
  child: 'hei',
  parent: 'dog',
}
console.log(dog)//{child: 'hei', parent: 'dog'}

函数接口
函数接口约束函数的参数

interface encrypt{
  (name:string,value:string,age?:number):string
}
var md5 :encrypt=function(name:string,value:string):string{
  return name+value
}
console.log(md5('张三-','男'));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值