typescript中接口interface的理解

接口

1.接口的作用:可以在定义类的时候限制类的结构

2.接口中的属性都不能有实际的值

csharp 复制代码
interface myInter{
  name:string,
  sayHello():void
}

定义类,让类去实现接口

实现接口就是使类满足接口的要求

如下:

csharp 复制代码
class myClass implements myInter{
   name:string;
   constructor(name:string){
     this.name=name
   }
   sayHello(){
     console.log('hello')
   }
}

抽象类

1.以abstract 开头的类是抽象类,抽象类和其他类的区别不大,不能用来实例化(创建对象);

2.抽象类就是专门用来被继承的类

3.抽象类中可以添加抽象方法

csharp 复制代码
abstract class Animal{
   name:string;
   constructor(name:str){
   this.name=name
  // sayHello(){console.log('动物在叫')}
  
  //定义个抽象方法
  //抽象方法使用abstract开头,且没有方法体
  //抽象方法只能定义在抽象类中,子类必须对抽象方法重写
  abstract sayHello():void
}

//Dog继承Animal
class Dog extends Animal{
   sayHello(){console.log('汪汪叫')}//重写sayHello方法,不写会有错误提示
}

总结:抽象类和接口的区别

1.抽象类中可以有抽象方法,也可以有普通方法;接口里都是抽象方法

2.用抽象类的时候是extends 继承;用接口的时候用的是implements实现

接口和对象类型的区别

csharp 复制代码
type myType={name:string,age:number} 
interface myInterface{name:string,age:number}
interface myInterface{gender:string}


const obj:myInterface={name:'张三',age:26,gender:'男'}
const obj:myType={name:张三,age:26}

区别1:接口可以重复声明;对象类型不可以,只能申明一个

所以申明类型的时候,可以使用别名的形式(type 别名={}),也可以使用接口的形式

相关推荐
用户223586218205 小时前
核心三角-Command Agent Skill - claude_0x02
前端
竹林8185 小时前
在NFT项目中集成IPFS:从Pinata上传到前端展示的完整踩坑指南
前端·javascript
吴声子夜歌5 小时前
Vue3——渲染函数
前端·vue.js·vue·es6
Hello--_--World5 小时前
ES15:Object.groupBy() 和 Map.groupBy()、Promise.withResolvers() 相关知识点
开发语言·前端·javascript
Cache技术分享5 小时前
386. Java IO API - 监控目录变化
前端·后端
Hooray5 小时前
管理后台框架 AI 时代的版本答案,Fantastic-admin 6.0 它来了!
前端·前端框架·ai编程
2501_913680006 小时前
Vue3项目快速接入AI助手的终极方案 - 让你的应用智能升级
前端·vue.js·人工智能·ai·vue·开源软件
开开心心_Every6 小时前
动图制作工具,拆分转视频动态照离线免费
运维·前端·人工智能·edge·pdf·散列表·启发式算法
饭后一颗花生米6 小时前
2026 前端实战:AI 驱动下的性能优化与工程化升级
前端·人工智能·性能优化
YJlio6 小时前
4月14日热点新闻解读:从金融数据到平台治理,一文看懂今天最值得关注的6个信号
java·前端·人工智能·金融·eclipse·电脑·eixv3