Consider the following interface declaration:

```
interface Foo {
    bar(keys: string[], handler: (parameter: any) => void): void;
}

```

How can I represent that `parameter` of the handler is an object with members whose keys are in the `keys` array?

```
var x: Foo;
x.bar(['First', 'Second'], x => {
    console.log(x.First);
    console.log(x.Second);
});

```