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