在 TypeScript 中,接口(interface
)可以描述几种不同类型的属性和结构。以下是你可以在接口中定义的一些常见属性和结构:
-
属性签名 - 描述对象属性的名称和类型。
interface Person {name: string;age: number; }
-
方法签名 - 描述函数或方法的参数列表和返回类型。
interface Greeter {greet(message: string): void; }
-
索引签名 - 允许你定义使用数字索引(类似数组)或字符串索引(类似对象字典)的类型。
interface StringArray {[index: number]: string; }interface Dictionary {[key: string]: any; }
-
构造签名 - 描述一个构造函数,它可以被实现为类的构造函数。
interface ClockConstructor {new (hour: number, minute: number): ClockInterface; }interface ClockInterface {tick(): void; }
-
可调用签名 - 描述一个可以被调用的函数类型。
interface SearchFunc {(source: string, subString: string): boolean; }
-
可索引类型 - 描述能够“通过索引得到”的类型,比如可以通过数字索引访问的数组或通过字符串索引访问的对象。
interface StringArray {[index: number]: string; }
-
继承和实现 - 接口可以继承多个接口,类可以实现一个或多个接口。
interface Shape {color: string; }interface Square extends Shape {sideLength: number; }class MySquare implements Square {color: string;sideLength: number; }
-
混合类型 - 可以描述具有多种类型的对象,例如,一个对象可以同时作为函数和对象使用,并拥有额外的属性。
interface Counter {(start: number): string;interval: number;reset(): void; }
-
泛型参数 - 接口可以带有泛型参数,使得接口更加灵活和可重用。
interface ResponseData<T> {data: T;status: number; }
-
只读属性 - 描述不可修改的属性。
interface Point {readonly x: number;readonly y: number; }
-
可选属性 - 对象中可能存在或不存在的属性。
interface Options {width?: number;height?: number; }
这些是 TypeScript 接口中可以使用的一些属性和结构。接口是 TypeScript 中定义复杂类型的强大工具,可以帮助你创建清晰和可维护的代码。