typescriptで自然数を判別したい
調べると、型でなんとかしようとする記事が目立った。
でもなんかむずそうだから、普通に関数でやろうと思った。
// 自然数だったらtrueを返す
const isNatureNum = (num: number): boolean => num > 0 && isInteger(num);
使い所
cssのプロパティって、自然数しか使えない場面ってある。
自分の場合、grid使うときにrowを制限したいときとか使った。
この実装だとlimitRow
が null
, undefined
, 0
, ''
らへんは全部grid-auto-rows
になるはず(間違ってたらごめんね)
そもそも型でnumber
に絞ってるけどね。
isNatureNum(prop.limitRow)
? {
overflow: 'hidden',
gridTemplateRows: `${prop.gridHeight}`,
height: 'auto',
maxHeight: `calc(${prop.gridHeight} * ${prop.limitRow})`,
}
: { gridAutoRows: `${prop.gridHeight}` };
もっといい方法あったら教えてください