typescriptで特定の値だけを引数に取りたいとき

1 min読了の目安(約400字TECH技術記事

例えば、クッキーを管理するためにセットできるキーを絞りたいようなとき

const cookieKeywords = {
  hoge: 'hoge',
  fuga: 'fuga'
} as const

const keywords = Object.values(cookieKeywords)
type CookieKeywords = typeof keywords[number]

こういう感じで準備しておいて

このキーを使う側の関数を↓のような感じで定義して

const setCookie = (key: CookieKeywords, value: string) => {
  ...
}

こうしておけば意図しないkeyがセットされるのを防げる

関数を使う側は

setCookie(cookieKeywords.hoge)

みたいな感じで使えば文字列タイプもしなくて多少楽