• 接口

    接口

    一个接口是一个TypeScript工件,它不是ECMAScript的一部分。 接口是一种用于相对于参数及其类型定义函数上的契约的方式。 除了函数,接口也可以与类一起使用以定义自定义类型

    接口是一个抽象类型,它不像类一样包含任何代码。 它仅定义API的“签名”或形状。 在代码转换期间,interface 不会生成任何代码,它仅在开发期间被Typescript用于类型检查。

    下面是描述函数API的接口的示例:

    1. interface Callback {
    2. (error: Error, data: any): void;
    3. }
    4. function callServer(callback: Callback) {
    5. callback(null, 'hi');
    6. }
    7. callServer((error, data) => console.log(data)); // 'hi'
    8. callServer('hi'); // tsc error

    有时JavaScript函数可以接受多个类型以及不同的参数,也就是说,它们可以有不同的调用签名。接口可以用来指定。

    1. interface PrintOutput {
    2. (message: string): void; // common case
    3. (message: string[]): void; // less common case
    4. }
    5. let printOut: PrintOutput = (message) => {
    6. if (Array.isArray(message)) {
    7. console.log(message.join(', '));
    8. } else {
    9. console.log(message);
    10. }
    11. }
    12. printOut('hello'); // 'hello'
    13. printOut(['hi', 'bye']); // 'hi, bye'

    下面是一个描述对象字面量的接口的示例:

    1. interface Action {
    2. type: string;
    3. }
    4. let a: Action = {
    5. type: 'literal'
    6. }