interface Filter {

ids: string[];

limit: number;

foo: unknown;

bar: unknown;

}

declare const filter: Filter;

const allowedKey: string[] = ['ids', 'limit'] satisfies Array;

Object.keys(filter).every(key => allowedKey.includes(key))

Reply to this note

Please Login to reply.

Discussion

: string[] で無理やり union から変換する感じかー

これはキャストをしてないので安全です。補完も効く。詳しくは satisfies キーワードで調べてもろて。

無理やりってわけではないか

なんか型合わせどこまで変換していい(すべきな)のかまだ慣れない

まあひとくちではなんとも… `: T` に拠っている分には原則安全で、どうにもできないときだけ as します。どうにもできないの判定はまあ引き出しの数というか…