require function parameter to implement multiple interfaces

typescript

Solution

You'd have to make a new named interface:

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;
    }
}

Problem

In typescript, is it possible to do something of the sort: ``` module module1 { export interface Foo { data1: string; } export interface Bar { data2: string; } export function foobar(data: Foo & Bar) { //do stuff data.data1; data.data2; } } ``` Namely, force foobar's data parameter to implement both Foo and Bar? And if so, what is the correct syntax? Thanks.

Original source