* 接口的作用,在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用接 * 接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,他只规定这批类里面必须提供 * 某些方法,提供这些方法的类就可以满足实际需要,typescript中的接口类似于java,同事还增加了更灵活的接口类型,包括属性、函数、 * 可索引和类等。 * 接口是定义的规范,可以复用 * 关键字 interface // 1. 属性接口 对json的约束 //ts定义方法只能对单一,进行约束 function printLabel(labelInfo: { label: string}): void { console.log(labelInfo.label) // printLabel({name:"张三"})//错误写法 printLabel({ label: '李四' }) //正确写法 传入参数必须有label // 属性接口 对批量方法传人参数进行约束 interface FullName { firstName: string; //注意以;结束 secondName: string; function printName(info: FullName) { //必须传入对象 firstName secondName console.log(info.firstName + info.secondName) //info.age,虽然传人了,但是在FullName中未定义,报错,所以严格按照接口要求 //printName({firstName:'firstName'}) //错误,约束必须传入对象 firstName secondName // printName({ // firstName:'张', // secondName:'三' , // age:20 //报错 这种写法,传入值只能包含接口定义的属性 // }) //这样定义在外部就可以传入接口写未定义的属性,但是不能在方法中使用,因为未定义该属性 var obj = { //这里的obj为interface类型,不能定义为object firstName: '张', secondName: '三', age: 20 printName(obj); //接口可选属性 interface FullName2 { firstName: string; lastName?: string; //可选属性 function printName2(info: FullName2) { console.log(info.firstName + info.lastName) //张 undefined printName2({ firstName: '张' /*2. 函数类型接口:对方法传人的参数 以及返回值进行约束 */ // 加密的函数类型接口 interface encrypt { (key: string, value: string): string //模拟一下 var md5: encrypt = function (key: string, value: string): string { //模拟进行了加密算法 return key + value console.log(md5('123', '456')) /* 可索引接口, 数组,对象的约束(不常用) */ interface UserArr { [index: number]: string var ar: UserArr = ['aaa', 'bbb'] console.log(ar[0]) /* 可索引接口 对对象的约束 */ interface UserObj { [index: string]: string var obj1: UserObj = { name: '张三', age: '20' } /* 类类型接口: 对类的约束 和 抽象类有点相似 */ interface Anima { name: string; eat(str: string): void; class Pig implements Anima { name: string; constructor(name: string) { this.name = name; eat(str: string) { console.log(this.name + str) var pig = new Pig('小猪') pig.eat('粮食') /*接口扩展:接口可以继承接口 */ interface Props { eat(): void; //继承接口 interface Pepole extends Props { work(): void; //待继承的类 class Programmer { public name: string; constructor(name: string) { this.name = name coding(code: string) { console.log(this.name + code) class Webs extends Programmer implements Pepole { constructor(name: string) { super(name) this.name = name eat() { console.log(this.name + '吃饭') work() { console.log(this.name + "写代码") var webs = new Webs('小王') webs.eat() webs.work() webs.coding('写ts') const { ccclass, property } = cc._decorator; @ccclass export default class NewClass extends cc.Component { /** * 接口的作用,在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用接 * 接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,他只规定这批类里面必须提供 * 某些方法,提供这些方法的类就可以满足实际需要,typescript中的接口类似于java,同事还增加了更灵活的接口类型,包括属性、函数、 * 可索引和类等。 * 接口是定义的规范,可以复用 * 关键字 interface.