メモっす

interface IEntry{
  getMessage(): string;
}
class A implements IEntry{                                    
  getMessage() {
    return 'hello a.';
  }
}
class B implements IEntry{
  getMessage() {
    return 'hello b.';
  }
}
class C implements IEntry{
  getMessage() {
    return 'hello c.';
  }
}
class D {
  getMessage() {
    return 'hello d.';
  }
}

var arry: Array<IEntry> = [
  new A(),
  new B(),
  new C(),
  new D(),
];

for (var index in arry){
  var entry: IEntry = arry[index];
  console.log(entry.getMessage());
}

あれ、コレはコンパイル通るんだ。