Skip to content

Latest commit

 

History

History
35 lines (26 loc) · 780 Bytes

File metadata and controls

35 lines (26 loc) · 780 Bytes

Home > types-kit > ReadonlyKeys

ReadonlyKeys type

Get readonly property keys of T.

Signature:

export type ReadonlyKeys<T> = {
  // remove undefined key
  [K in keyof T]-?: If<
    IsEquals<{ [P in K]: T[P] }, { -readonly [P in K]: T[P] }>,
    never,
    K
  >
}[Keys<T>]

References: If, IsEquals, Keys

Example

interface Props {
     readonly a?: number
     b: number
     readonly c: number
   }
   // Expect: 'a' | 'c'
   type Keys = ReadonlyKeys<Props>