Traduzido pelo Google, abra um PR para ajudar a melhorar a tradução.
Implemente um GetReadonlyKeys<T> genérico que retorne uma união das chaves somente leitura de um Objeto.
Por exemplo
interface Todo {
readonly title: string
readonly description: string
completed: boolean
}
type Keys = GetReadonlyKeys<Todo> // expected to be "title" | "description"
import type { Equal, Expect } from '@type-challenges/utils'
type cases = [
Expect<Equal<'title', GetReadonlyKeys<Todo1>>>,
Expect<Equal<'title' | 'description', GetReadonlyKeys<Todo2>>>,
]
interface Todo1 {
readonly title: string
description: string
completed: boolean
}
interface Todo2 {
readonly title: string
readonly description: string
completed?: boolean
}