generated at
ExpressのEndpointに型を付ける
やりたいこと
Requestのpath params、query params、bodyに型を付けたい
実行時型検査をして欲しい
数値のみを許容する場合は、 number 型にしてほしい
Responseに型を付けたい


いろいろlibraryがある
io-tsを使う
これでだいたい目的は達成できたmrsekut
良い
が、範囲が広い
全体的に依存することになる
薄いので自作できそうmrsekut
refine.transformすると型エラーになってしまう。惜しい
これは単純にmrsekutのzod知識不足かもしれない
zod-express-guard
2020/12から更新が止まっている
ちょっと触ったけど無理だったので却下
express-fp
2018年から更新が止まっている


『実践TypeScript』にも書いている
流し読みした感じ、library使っていないので冗長な感じがする
まだちゃんと読んでないmrsekut



ちなみに、Expressのdefaultでpath parameterは型が効く
ts
router.get('/:id/books/:bookId', (req, res) => { const { id, bookId } = req.params; // 型が効く const value = { value: `${id}: ${bookId}` }; res.send(value); });
ただし、全て string になる
ここも
numberである
正数である
などを型安全にvalidationしたい