handbookやspecに書いてあることではあるけれど。 はじめに 例えば以下の様な定義があるとする。 class X { say() { return "x"; } } class Y { } ここで以下のような型は型チェックを通らない。正しい。 let y: Y = new Y(); y.say(); もちろん以下のようなコードは正しい。 let x: X = new X(); y.say(); ここで異なる型の配列を指定したい場合がある*1。このような時はどうすれば良いかという話。 var values = [new X(), new Y()] values[0].say(); 方法 any 一番単純なのはany型で定義して、利用する際にcastすることかもしれない。まぁ良くない。 // this is bad. let values: any[] = [new X(), new