🍇
TypeScriptで0~nまでの整数だけを取る型を"楽をして"書く
これを読んでわざわざ複雑な型を書かなくてもええやん。コードの文字列を生成してコピペすればいいやん、と思ったのでネタ。
0 ~ nのパターン
ブラウザのコンソールでも、node.jsでもなんでもいいので
console.log(`type MyRange0to100 = ${[...Array(101).keys()].join("|")};`)
と書きましょう。とすると
type MyRange = 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100;
という感じものが出力されるので、これをコピペして
type MyRange0to100 = 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100;
const ok : MyRange0to100 = 55;
//const error : MyRange0to100 = 101;
とやりましょう。
n ~ mの場合
たとえば 20 から100までの場合は
console.log(`type MyRange20to100 = ${[...Array(101 - 20).keys()].map(i=>i+20).join("|")};`)
と書いたら
type MyRange20to100 = 20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100;
が出てきます。
Discussion