1. ホーム
  2. regex

Typescript で正規表現にマッチした文字列型を定義するには?

2023-08-01 02:30:53

質問

文字列の書式に関する情報を持つインタフェースを定義することは可能でしょうか?次のような例で考えてみます。

interface timeMarkers{
    markerTime: string[]        
};

のような例があります。

{
   markerTime: ["0:00","1:30", "1:48"]                   
}

私の質問です。の型を定義する方法はありますか? markerTime として宣言する代わりに、文字列の値が常にこの正規表現にマッチするような型を定義する方法はありますか? string[] と宣言してそこから進むのですか?

var reg = /[0-9]?[0-9]:[0-9][0-9]/;

どのように解決するのですか?

このような型を定義する方法はありません。あるのは 提案 がありますが、現在のところ優先順位は高くないようです。これに投票すれば、もしかしたらチームは将来のリリースにこれを含めるかもしれません。

編集

4.1以降では、実際にすべてのオプションを定義しなくても、文字列を検証する型を定義することができます。

type MarkerTime =`${number| ''}${number}:${number}${number}`

let a: MarkerTime = "0-00" // error
let b: MarkerTime = "0:00" // ok
let c: MarkerTime = "09:00" // ok


遊び場リンク