Skip to main content

READMD

interface

可以用来约束一个函数,对象,以及类的结构和类型

对象类型的接口

interface ListItem{
id:number
name:string
}

interface list{
data:ListItem[]
}

function getListId(list:list){
list.data.forEach(item=>{
console.log(item.id,item.name)
})
}
  • 允许传入的list有除了接口定义的其他值,但接口中规定的值必须要有
let list = {
data:[
{
id:1,
name:'xjn',
age:13
}
]
}
  • 若直接传人对象内容(对象字面量),ts会对其余的值进行类型检查 解决方法:
  1. 将内容赋值给一个变量
  2. 添加类型断言 as+对象类型
  3. 给接口添加[x:string]:any
getListId({
data:[
{
id:1,
name:'xjn',
age:13
}
]
}as List)

函数类型的接口

  • 方式一
interface Add{
(x:number,y:number):number
}

let add:Add = (a,b) => {
return a+b
}
console.log(add(1,2))
// 3
  • 方式二
type Add = (x:number,y:number) => number

let add:Add = (a,b) => {
return a+b
}
console.log(add(1,2))
// 3

混合类型的接口

interface MixItf{
():void
msg:string
}

function getMix(){
let lib:MixItf = (()=>{}) as MixItf
lib.msg = 'rose'
lib.dosomething = () => {}

return lib
}

let Mix = getMix()
console.log(Mix.msg)
// rose

参考

ts接口 interface