export type Rectangle = { height: number; width: number; }; export const Rectangle = { from(height: number, width: number): Rectangle { return { height, width, }; }, }; // Rectangleという宣言が型と値の両方で使える! const rectangle: Rectangle = Rectangle.from(1, 3); サバイバルTypeScriptを読んだ方は、型(Type)と値(Value)を同じ名前で定義するテクニックとしてご存知かもしれません。 実はこれ、名前空間(namespace)も加えた 「三重定義」 が可能なんです。 今回は、この「三重定義」を活用することで実現できる、Reactコンポーネントの柔軟

