TypeScript 中,接口(interface)可以描述几种不同类型的属性和结构

在 TypeScript 中,接口(interface)可以描述几种不同类型的属性和结构。以下是你可以在接口中定义的一些常见属性和结构:

  1. 属性签名 - 描述对象属性的名称和类型。

    interface Person {
      name: string;
      age: number;
    }
    
  2. 方法签名 - 描述函数或方法的参数列表和返回类型。

    interface Greeter {
      greet(message: string): void;
    }
    
  3. 索引签名 - 允许你定义使用数字索引(类似数组)或字符串索引(类似对象字典)的类型。

    interface StringArray {
      [index: number]: string;
    }
    
    interface Dictionary {
      [key: string]: any;
    }
    
  4. 构造签名 - 描述一个构造函数,它可以被实现为类的构造函数。

    interface ClockConstructor {
      new (hour: number, minute: number): ClockInterface;
    }
    
    interface ClockInterface {
      tick(): void;
    }
    
  5. 可调用签名 - 描述一个可以被调用的函数类型。

    interface SearchFunc {
      (source: string, subString: string): boolean;
    }
    
  6. 可索引类型 - 描述能够“通过索引得到”的类型,比如可以通过数字索引访问的数组或通过字符串索引访问的对象。

    interface StringArray {
      [index: number]: string;
    }
    
  7. 继承和实现 - 接口可以继承多个接口,类可以实现一个或多个接口。

    interface Shape {
      color: string;
    }
    
    interface Square extends Shape {
      sideLength: number;
    }
    
    class MySquare implements Square {
      color: string;
      sideLength: number;
    }
    
  8. 混合类型 - 可以描述具有多种类型的对象,例如,一个对象可以同时作为函数和对象使用,并拥有额外的属性。

    interface Counter {
      (start: number): string;
      interval: number;
      reset(): void;
    }
    
  9. 泛型参数 - 接口可以带有泛型参数,使得接口更加灵活和可重用。

    interface ResponseData<T> {
      data: T;
      status: number;
    }
    
  10. 只读属性 - 描述不可修改的属性。

    interface Point {
      readonly x: number;
      readonly y: number;
    }
    
  11. 可选属性 - 对象中可能存在或不存在的属性。

    interface Options {
      width?: number;
      height?: number;
    }
    

这些是 TypeScript 接口中可以使用的一些属性和结构。接口是 TypeScript 中定义复杂类型的强大工具,可以帮助你创建清晰和可维护的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值