一、接口的作用
- 在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用。接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。 typescrip中的接口类似于java,同时还增加了更灵活的接口类型,包括属性、函数、可索引和类等。
1、属性接口
- 对json的约束 ```typescript // 1.ts中定义方法 function printLabel(): void { console.log(‘printLabel’); } printLabel();
// 2.ts中定义方法传入参数 function printLabel(label: string): void { console.log(‘printLabel’); } printLabel(‘hahah’);
// 3.ts中自定义方法传入参数,对json进行约束 function printLabel(labelInfo: { label: string }): void { console.log(‘printLabel’); } printLabel(‘hahah’); // 错误写法 printLabel({ name: ‘张三’ }); // 错误的写法 printLabel({ label: ‘张三’ }); // 正确的写法
// 4.接口:行为和动作的规范,对批量方法进行约束 interface FullName { // 就是传入对象的约束属性接口 firstName: string; secondName: string; } function printName(name: FullName) { // 必须传入对象 firstName secondName console.log(name.firstName + ‘—‘ + name.secondName); } printName(‘1213’); // 错误写法 var obj = { // 传入的参数必须包含 firstName secondName firstName: ‘张’, secondName: ‘三’ }; printName(obj) // 正确写法
// 写可以对其他方法进行约束 function printInfo(info: FullName) { // 必须传入对象 firstName secondName console.log(info.firstName + info.secondName); }
<a name="7745d426"></a>##### 2、可选属性接口```typescript// secondName后面加个问好代表参数可传可不传interface FullName {firstName: string;secondName?: string;}function getName(name: FullName) {console.log(name)}getName({firstName: 'firstName'})
