Angular 17.1 では、デコレーターに基づく @Input() 入力の代替として、シグナル入力を導入しました。シグナル入力は、コード品質と生産性を向上させるために、タイプセーフティを高め、Angular シグナルとの統合を容易にします。
シグナル入力により、開発者はシグナルを使用して入力の変更に効果的に対応でき、オプション入力と必須入力の両方をサポートします。
@Input() と比較して、シグナル入力は OnPush コンポーネントを自動的に汚れた状態としてマークし、DX を向上させ、Zoneless に対応するための基盤を整えます。
シグナル入力は、シグナルの力を活用して、変更の監視と値の導出を効率的に行い、Angular に必要な再描画を通知します。
シグナル入力の潜在的な使用例には、宣言と描画、変更の監視、値の導出、値の変換などがあります。
シグナル入力は、変換とエイリアスをサポートし、生の値を柔軟に処理し、特定の要件を満たすことができます。
Angular チームは、シグナル入力が将来のバージョンで本番ステータスに昇格したときに使用することを推奨しています。
開発者は、開発者プレビューでシグナル入力に関するフィードバックを提供することを奨励しています。
input() の省略表記は、初期値として undefined を暗黙的に使用するため、混乱を招く可能性があります。
入力は、コンポーネント内から入力を更新していたアプリケーションに影響を及ぼす可能性があるため、読み取り専用になりました。
blog.angular.dev
Signal inputs available in developer preview
Create attached notes ...
