KITASENJU DESIGN BLOG

memo, html, javascript, unity

typescriptでわけわからんエラー

let scenes: SceneA[] = [
new SceneA(),//SceneA extends SceneBase
new SceneB()//SceneB extends SceneBase
];

本当はSceneBaseの配列にしたかったのだけど、間違ってSceneAの配列としてしていた。 ただ最初はなぜかエラーはでなかった。メンバー変数や関数が一致してたから?

その後いじってたら、SceneBにこのメンバー変数がありません等、何やら自分が予期する挙動と違ってしまい、時間を浪費した。 コンパイラが配列の要素の型(クラス名や継承関係)をチェックするのではなく、メンバー変数とかをチェックしてるような挙動。

"FOOTER"