1. ホーム
  2. typescript

[解決済み] ある範囲に番号を限定することは可能ですか?

2022-06-24 08:58:14

質問

typescript 2.0 RC (あるいはベータ?) からは、以下のように数値リテラルの型を使用することが可能になっています。 type t = 1 | 2; . 型に 256 個の数字を書き出すことなく、0-255 などの数値範囲に型を制限することは可能でしょうか?

私の場合、あるライブラリはパレットの色値を0-255で受け付けますが、私はいくつかの名前だけですが0-255に制限することを希望しています。

const enum paletteColor {
  someColor = 25,
  someOtherColor = 133
}
declare function libraryFunc(color: paletteColor | 0-255); //would need to use 0|1|2|...

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

いいえ、それは不可能です。そのような正確な型制約はtypescriptでは利用できません(まだ?)

実行時チェック/アサーションだけがそれを実現できる :(