需要函数参数来实现多个接口

Pet*_*ter 5 typescript

在打字稿中,是否可以做这样的事情:

module module1 {
    export interface Foo {
        data1: string;
    }
    export interface Bar {
        data2: string;
    }
    export function foobar(data: Foo & Bar) {
        //do stuff
        data.data1; data.data2;
    }
}
Run Code Online (Sandbox Code Playgroud)

即,强制 foobar 的 data 参数同时实现 Foo 和 Bar?如果是这样,正确的语法是什么?

谢谢。

Rya*_*ugh 6

您必须创建一个新的命名接口:

module module1 {
    export interface Foo {
        data1: string;
    }
    export interface Bar {
        data2: string;
    }
    export interface FooAndBar extends Foo, Bar { }
    export function foobar(data: FooAndBar) {
        //do stuff
        data.data1; data.data2;
    }
}
Run Code Online (Sandbox Code Playgroud)