欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 一文大白话讲清楚typescript接口interface

一文大白话讲清楚typescript接口interface

2025/2/22 2:05:53 来源:https://blog.csdn.net/xiaobangkeji/article/details/145067617  浏览:    关键词:一文大白话讲清楚typescript接口interface

文章目录

  • 一文大白话讲清楚typescript接口interface
  • 1. 啥是接口(interface)
  • 2. 属性的限制
    • 2.1 限制属性可选
    • 2.2 设置属性只读
  • 3. 接口继承
  • 4. 应用场景

一文大白话讲清楚typescript接口interface

1. 啥是接口(interface)

  • 接口是一系列抽象的属性和方法的声明,是属性和方法特征的集合。这些方法和属性都是抽象的,但不提供创建对应对象实例的方法。
  • 这嘎嘎嘎讲了一顿,一头雾水
  • 大白话讲一下
  • 接口,就是定义了我定定义了我里面有什么属性,然后属性是什么类型的,如果你想把我当成变量的类型去创建变量,那你一定要有这个属性,而且属性的值必须是我规定的类型
interface Person{name:string,age:number
}
let p:Person={name:'tom',age:12
}
console.log(p)//{ name: 'tom', age: 12 }
  • 或者我们定义一个方法,传入一个Person对象User,然后返回对象的name
interface Person{name:string,age:number
}
function sayName(User:Person):string{return User.name;
}
let p:Person={name:'tom',age:12
}
console.log(sayName(p))//tom

2. 属性的限制

2.1 限制属性可选

  • 设置属性可选,如果属性设置为可选,则可以传入对应的类型变量或者不传,即undefined
interface Person{name:string,age:number,height?:number
}
let p:Person={name:'tom',age:12,height:15
}
let p2:Person={name:'tom',age:12,
}

2.2 设置属性只读

  • 可以设置属性为只读,不允许赋值操作
interface Person{name:string,age:number,height?:number,readonly job:string
}
let p:Person={name:'tom',age:12,height:15,job:'boss'
}
p.job='new boss'//Cannot assign to 'job' because it is a read-only property.

3. 接口继承

  • 就是把别人的东西继承到你自己身上,让你不仅有自己的属性,还有被人的属性
  • 可以继承一个,也可以继承多个接口,用逗号隔开
  • -类比交叉类型

interface Leader{job:string
}
interface Workere{salary:string
}
interface  Person extends Leader,Workere{name:string
}
let p:Person={name:'tom',job:'boss',salary:'tom'
}
console.log(p)//{ name: 'tom', job: 'boss', salary: 'tom' }

4. 应用场景

  • 验证登录
interface Login{phone:number,password:string,login(phone:number,password:string):boolean
}
let login={phone:12453678912,password:'hdj@484',login(phone,password){return true}
}
console.log(login.login)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词