1、属性类接口
function pullData(name:string) {
console.log(name)
}
pullData('this is ts')
// this is ts
2、对json进行约束 关键词interface
接口定义 行为和动作规范,对批量方法进行约束
接口可选属性 通过?来判断
interface json {
name:string;
age:number
}
function pullData(object:json):string {
retrun `${object.name}今年${object.age}岁`
}
pullData({name:'张三',age:20}) // 张三今年20岁
或
const params = {
name:'张三',
age: 20
}
pullData(params) // 张三今年20岁
接口可选属性 通过?来判断
interface json01 {
name:string;
age?:number
}
function pullData(object:json01):string {
retrun `${object.name}今年${object.age}岁`
}
pullData({name:'张三'}) // 张三今年undifind岁
3、函数类型接口 对方法传入的参数,以及返回值进行约束
interface json{
(name:string,age:number):string
}
var pullData:json = function(name:string,age:number):string{
retrun name + '今年' + age
}
pullData({name:'张三',age:20}) // 张三今年20
4、可索引接口对数组和对象的约束
interface userArr {
[index:number]:string
}
interface userArr {
[index:string]:string
}
5、类类型接口 关键词implements
// 对类的约束--抽象类相似
// interface 定义属性和方法,implements 实现接口,属性和方法必须同步
interface data {
name:string;
eat(foot:string):void
}
class Person implements data {
name:string;
constructor(name:string){
this.name = name
}
eat(foot:string){
retrun `${this.name}正在吃${foot}`
}
}
var p = new Person('张三')
console.log(p.eat('肉肉')) // 张三正在吃肉肉
6、接口扩展和接口的继承
// 接口扩展和接口的继承
interface api {
run():any
}
interface rpa extends api{
work():any
}
class Person {
name:strimg;
constructor(name:string){
this.name = name
}
}
class web extends Person implements rpa {
constrcutor(name:string){
super(name)
}
run(){
console.log(this.name + '在运动')
}
work(){
console.log(this.name + '在工作')
}
}
var w = new web ('华子')
w.run()
w.work()