TypeScript は「構造的型付け(Structural Typing)」を採用していると言われます。
つまり、型に定義されていないプロパティが存在しても、それが使用されなければ基本的にエラーにはなりません。
ですが、そうでもない別の型チェックシステムがあるということみなさんご存知でしょうか?
実は構造的型付けとは異なる文脈で働く TypeScript の型チェックの仕組みが存在します。
オブジェクト型のプロパティがすべて任意の場合弱い型(weak type)のチェックと、
オブジェクトリテラルに型注釈をする場合実行される余剰プロパティチェックがその例です。
今回の LT では このように Typescript の基本思想と違う型チェックシステムを紹介します!
Typescript 型システムへの理解をもっと深められる機会になると思います。