一、接口的作用

  • 在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用。接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。 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); }

  1. <a name="7745d426"></a>
  2. ##### 2、可选属性接口
  3. ```typescript
  4. // secondName后面加个问好代表参数可传可不传
  5. interface FullName {
  6. firstName: string;
  7. secondName?: string;
  8. }
  9. function getName(name: FullName) {
  10. console.log(name)
  11. }
  12. getName({
  13. firstName: 'firstName'
  14. })