2016-08-30 8 views
3

2文字のISO国コードを表すタイプを作成したいとします。これらの(またはその他の固定長アイテム)の型定義を作成する簡単な方法はありますか?フローで固定長タイプを作成する方法

もちろんの一つのアプローチは、すべての可能なもの

type CountryCode = "AX" | "AL" | "DZ" | ... 

のリストを列挙だろうしかし、私はちょうど2文字の文字列を強制するというシンプルなものをみたいです。

dynamic type testsを使用する必要がありますか?

+0

いいえ、不可能です – vkurchatkin

答えて

3

いいえ、フローにはこのような機能はありません。それは本当に依存型を持たず、個々の値からなる型もあります。

普段JSでどうなるようにあなたはif (countryCode.length === 2) { ... }のようなテストを使用することができますが、2つの文字の文字列を表すために何のフロータイプが存在しないので流れは、ifブロック内countryCodeの種類を洗練しません。 if (countryCode !== null)フロー等テストはcountryCodeは、IFブロック内にヌルではないことを知っているであろうと、型チェックのためにその知識を使用することができ、実際のダイナミックタイプとは対照的に

、。

技術的には、AからZまでの大文字の26 * 26 = 676文字列( "AA"、 "AB"、...、 "ZY"、 "ZZ")を生成できることに注意してください。あなたの実装を改善するものではありません。

関連する問題