azukiazusa

azukiazusa

TypeScript で任意の文字列を受け取りつつエディタの補完を効かせる型

すべての文字列を受け入れつつ、特定の文字列のみを補完候補に表示させたい場合があります。例えば、CSS の色を指定するプロパティの値には、カラーコードで指定する #000000#ffffff などの文字列を受け入れつつ、redblue などの特定の文字列を指定します。

azukiazusa

azukiazusa

単純に "red" | "blue" | string とすると、"red""blue" が補完候補には表示されません。

azukiazusa

azukiazusa

文字列リテラルの共用型に (string & {}) を付け加えることで、任意の文字列を受け取りつつ、"red""blue" のような特定の文字列を補完候補に表示できます。

azukiazusa

azukiazusa

type Color = "red" | "blue" | (string & {});