С помощью машинописного текста 2.0 RC (или даже бета?) Можно использовать числовые литералы, как в type t = 1 | 2;
. Можно ли ограничить тип диапазоном чисел, например. 0-255, не выписывая 256 чисел в типе?Можно ли ограничить номер определенным диапазоном
В моем случае, библиотека принимает значения цвета для палитры из 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|...
Примечание: перечисления определяют набор именованных ** числовых ** констант, а не новый тип. Поэтому, объявляя, что числа могут быть переданы вместо 'paletteColor', не нужно. –
@Burt_Harris true. Также понадобится способ ограничить перечисление до 0-255. Можно также использовать объект индексатора вместо перечисления, хотя и немного уродливый. '' 'Не требуется в любом случае, он должен в лучшем случае просто быть' paletteColor', если он был ограничен 0-255 или всего 0-255. – ASDFGerte
Примечание: Начиная с TS 2.4, теперь строковые литералы разрешены как значения перечисления https://blogs.msdn.microsoft.com/typescript/2017/06/27/announcing-typescript-2-4/#string-enums –