すべての文字列を受け入れつつ、特定の文字列のみを補完候補に表示させたい場合があります。例えば、CSS の色を指定するプロパティの値には、カラーコードで指定する #000000
や #ffffff
などの文字列を受け入れつつ、red
や blue
などの特定の文字列を指定します。
単純に "red" | "blue" | string
とすると、"red"
や "blue"
が補完候補には表示されません。
文字列リテラルの共用型に (string & {})
を付け加えることで、任意の文字列を受け取りつつ、"red"
や "blue"
のような特定の文字列を補完候補に表示できます。
type Color = "red" | "blue" | (string & {});