特定の文字列or任意の文字列(typescript)

JavaScript

割とよくあるのはcolorをカラーコード指定させたいが、rgbやHEXカラーも許容したい場合があります。

type Color = ‘red’ | ‘blue’ | string
のように定義したくなりますが、この場合はアップキャストされてstringになります。
‘red’がstringのサブタイプなのでアップキャストされます。

一方で大文字のStringはstringとは似て非なる存在です。
Stringはstringを受け付けますが、stringはStringを受け付けません。

なので、上図のcolor3ように定義することで特定の文字列or任意の文字列を実現できます。

TypeScriptで特定の文字列または全ての文字列を定義する | miyauci.me
TypeScriptで'string'|stringを定義する方法を紹介します。通常はstring型にアップキャストされてしまいますが、ハッキーな方法でこれを解決します。

コメント