UUIDを処理するコードを記述しているとします。内部的には、それらを文字列として表現したいと思います。つまり、すべてのUUIDは文字列ですが、すべての文字列が有効なUUIDであるというわけではありません。誤ってUUIDを保持する変数に間違ったものを割り当てることは望ましくありません。これらの性質を有するフローを持つタイプを作成する方法はありフローの組み込み型のサブタイプ
function create_uuid(): uuid; { /* implementation? */ }
let foo: uuid = create_uuid();
let bar: string = uuid; // this is fine
:だから私はこの割り当てが失敗するようなタイプ「UUID」を作成したい:
let foo: uuid = "Some string"
しかし、これは成功するはず?私は私の研究で$Subtype
を発見し、これはうまくいくかもしれないと思った:
type uuid = $Subtype<string>;
しかし、それはまだ文字列から割り当てることができますいくつかの理由があります。
AFAIKでは、フローでは文字列の特定のサブタイプを定義できません。例えば"Some String"と "uuid chars"を区別することはできません。それらは文字列の同等のサブタイプです。 –