简介
接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用。接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。 typescrip中的接口类似于java,同时还增加了更灵活的接口类型,包括属性、函数、可索引和类等。定义标准。
1、属性接口
定义接口interface fullName {//关键字是interfacefirst: string;//定义属性名以及类型second: string;//定义属性名以及类型third: number;//定义属性名以及类型}function printName(name: fullName) {//规定传入的值必须符合要求console.log(name.first + "--" + name.second);console.log(name.third);}// printName({//这种写法错误,直接传对象只能写第一和第二个参数// //不能写入其他参数// first : "spring",// second : "summer",// age : 20,// sex : 'male',// })let obj = {//写法正确first: "Missing",//属性名与属性值必须符合要求second: "Kissing",//属性名与属性值必须符合要求third: 20,//属性名与属性值必须符合要求}printName(obj);//传值对传入的值可填可不填interface season {one: string;two: string;three: string;four?: string;//加上“?”可以填入值也可以不填入值readonly five: string //关键字readonly代表着只读并不可修改}function oder(oder: season) {console.log(oder.one);console.log(oder.two);console.log(oder.three);//console.log(oder.five);}let oderSeason = {one: 'spring',two: "summer",three: "autumn",//four : "winter",//在抽象中已经加入“?”这个值可以不写}oder(oderSeason);
2、函数类型的接口
//函数类型接口 对方法传入的参数,以及返回值的约束,不能直接传入变量名 必须以实参传递进去interface encryption {//定义一个函数类型的接口(key: string, value: string): void;}let admin: encryption = (key: string, value: string): void => {//实现这个接口console.log(key + "---" + value);//name --- Odin}admin('name', "Odin");
3、可索引接口也就是数组和对象的约束(一般不常用)
//对数组的约束 可索引接口interface userArr {[index: number]: string;//下标的类型必须是number 而数组里面的类型可以任意指定}let arrayThird: userArr = ["20", "40,"];//对 对象的约束interface userObj {[index: string]: string;}let userObject: userObj = {name: "string",age: '20',}
4、“类”类型接口:对类的约束和抽象类相似
interface Rainbow {name: string;color(str: string): void;}class sevenRainbow implements Rainbow { //使用关键字implements 继承接口name: string;constructor(name: string) {this.name = name;}color(mean: string) {console.log(this.name + ',' + mean);}}let SevenRainbow = new sevenRainbow("什么是幸福?");SevenRainbow.color('幸福就是猫吃鱼,狗吃肉,奥特曼打小怪兽');
谢谢观看 !!! 如有不足,敬请指教