Typescript-接口(interface)

interface

为我们的代码提供一种约定

TypeScript的核心原则之一是对值所具有的结构进行类型检查。它有时被称做“鸭式辨型法”或“结构性子类型化”

在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约

定义接口 函数型接口

interface my{
    name:string
    //可选属性+?号
    age?:number
} 
let man:my={name:'zt'};

function createS(config:my):void{
  console.log(config.name)
}

 设置接口只读属性 readonly

一些对象属性只能在对象刚刚创建的时候修改其值

readonly还是const的方法是看要把它做为变量使用还是做为一个属性。 做为变量使用的话用 const,若做为属性则使用readonly

interface Person{
    readonly name:string;
    readonly age:number;
}
//赋初始值
let man1:Person={name:'zt',age:8848};
man.age=20;//error!

任意属性

interface Person2{
    name:string;
    age:number;
    sex?:string;
    [propName:string]:any;
}


const man4:Person2={
    name:"zt",
    age:20,
    test1:"lala",
    test2:123,

}

 

函数类型接口

interface Person1{
    (name:string,age:number):boolean
}
//定义Person1 约束  函数参数名可以不用和接口中的名字对应,只要求对应参数位置的类型兼容
let man2:Person1=(name:string,age:number)=>{
    return age>888;
}

const man3=({name,age}:{name:string,age:number}):boolean=>{
    return age>888
}

可索引类型的接口

用于描述某个类型可以通过索引进行读写,索引可以为数字也可以为字符串,常见的数组与对象就是索引类型

对数组、对象的约束

//可索引类型的接口
//对数组的约束
interface UserArr{
    [index:number]:string
}
let arr7:UserArr=['aaa','111'];
//对对象的约束
interface UserObj{
    [index:string]:string
}

let obj:UserObj={name:'张三',age:"20"}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值