TypeScript で難しい問題があります。
プロップサイズのアイコンコンポーネントがあるとします。サイズは「2」、「4」、「6」のいずれかです。これらの値を事前定義された追い風クラスにマッピングします。
だから私は次のように入力しました
リーリー ###すべては順調です。しかし、画面サイズに基づいて異なるサイズを使用したい場合はどうすればよいでしょうか?ですので、スムーズに進む良い文法を身につけたいと思っています。そこで、Icon コンポーネントを次のように書き直しました:
リーリー
これはうまく機能しますが、どうやって入力すればよいでしょうか? TypeScript は将来正規表現をサポートする予定だと読みました。これで作業が簡単になりますが、今入力してもいいですか?これは実際のコンポーネントではないため、改善方法について良い提案はしないでください。サイズ属性をコーディングしたとおりに機能させるために、どのように入力すればよいのか疑問に思っています。
P粉5093831502024-01-11 10:57:21
まず、sizeMap
をグローバル スコープに抽出し、constassert を使用してコンパイラーにこれが不変定数であることを知らせ、型の拡張を制限する必要があります。 ##
リーリー
sizeMap:
のキーのタイプを取得する必要があります。
リーリー
###実装:
文字列を受け入れ、文字列が有効な場合はそれを返し、そうでない場合は
を返す型を作成します。
疑似コード:
型に
T - 検証する文字列、Original
- 元の文字列、Already Used
- 使用されたキーの和集合を受け入れさせます。
が空の文字列の場合
それ以外の場合、T
がサイズ マップのキー (ClassName
) で始まり、Alreadyused
を除き、その後にスペースと残りの文字列 (break) が続く場合###)。
Original と
ClassName を追加した
Already Used を検証します。それ。
< /code>
Alreadyused を除く
戻る
決してしない
サイズ
を表す共通パラメータをリーリー
size はコンポーネントではオプションであるため、
string | unknown を
string
SizeValue の周囲にラッパーを追加します。それを
_SizeValue に渡し、さらにサイズのデフォルト値を追加します:
リーリー
###使用法:###
リーリー
######遊び場######