接口

ts 中的接口跟 go 那是大不相同,go 的接口是抽象方法,ts 的接口是类型

type MyAge interface {
  Method1(x int,y int)(value int,err error)
  Method2()error
}
interface MyAge {
  name :string
}
function mysage(m :MyAge){
  console.log(m.name)
}
let obj = {
  name : 'shgopher',
  year : 1990,
}
mysage(obj)

通过上面的案例你应该也发现了,ts 中的接口也是鸭子理论,只要实现的数据符合接口,那么就相当于实现了接口

ts 中接口还能描述函数,不过跟 go 不同,它就是想表示这个函数而已

interface myF {
    (name :number):number
}
let f:myF = (name:number) => name
console.log(f(12))

接口还可以描述数组和索引类型

interface myArrar{
  [index:number]:string
}
interface MyMap {
  [index:string]:string
}