types-kit.optionalkeys.md

September 4, 2023 ยท View on GitHub

Home > types-kit > OptionalKeys

OptionalKeys type

Get optional property keys of T.

Signature:

export type OptionalKeys<T> = {
  [K in keyof T]-?: {} extends Pick<T, K> ? K : never
}[Keys<T>]

References: Keys

Example

interface Props {
    a?: number
    readonly b: number
    c?: number
  }

  // Expect: 'a' | 'c'
  type PropKeys = OptionalKeys<Props>