【TypeScript】値・型・名前空間の「三重定義」でReactコンポーネントをより柔軟に設計する