TypeScript: 値をセットさせないフィールドの型定義
https://scrapbox.io/files/6131e4e8b543e8001dbb026d.png
code:ts
interface Params {
id?: never; // POST用なのでidはセットしちゃいけないというシナリオ
name: string;
}
function post(_: Params) {}
post({name: '11', id: true })
const p = {name: '11', id: undefined };
post(p)
この型定義と TypeScript 4.4で追加された exactOptionalPropertyTypes オプションを組みわせることで、絶対に(要出典)値をセットさせないフィールドが作れる。
何らかの値をセットしようとすると never にはアサインできないのでエラー
明示的な undefined のセットも never | undefined ではないので exactOptionalPropertyTypes 中ではエラー