三、typescript接口

接口用来定义一个类的结构,定义类的时候区限制类的结构,只定义对象的结构,不能有实际值

在接口中所有的方法都是抽象方法

可选属性

interface Type{
   name:string,
   age?:number
}

只读属性 

interface  Type{
    readonly name:string
}

let a:Type={name:'ppp'}

console.log(a.name)

//报错:无法分配到 "name" ,因为它是只读属性
a.name='ccc'

相同接口可以定义多个 

interface  Type{
    readonly name:string
}

interface Type{
    age:number
}
let a:Type={name:'ppp',age:10}

函数 

interface  Type{
    name:string,
    say():void
}

let a:Type={name:'ppp',say() {
    console.log('hi')
},}

其他 

  • 一个类通过关键字extends声明自己继承某个父类,只能继承一个类;
  • 一个类通过关键字implements声明自己实现一个或多个接口。
  • implements可以实现多个接口,表示形式为:用逗号分开。
  • 若同时用到extends和implements,关键字extends必须放在关键字implements之前
  • 接口可以继承接口,但接口不能实现接口
interface  Father{
    name:string,
    say():string
}
//继承
interface Son  extends  Father{
    age:number
}
let a:Son={
    name:'ppp',
    say() {
        return  'go'
    },
    age:10
}

//class使用接口
class home implements Son{
    name='q'
    say(){
        return  'hi'
    }
    age=17
}

type和interface的区别

type可以定义基本类型别名,声明联合类型,声明元祖

type P=string
type Person = { name: string } | { age:number };

 interface可以定义多个接口

interface Person {
    name: string;
}
interface Person {
    age: number;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值