by Anthony Fu @antfu
Traduzido pelo Google, abra um PR para ajudar a melhorar a tradução.
Implemente um DeepReadonly<T>
genérico que torne todos os parâmetros de um objeto - e seus subobjetos recursivamente - somente leitura.
Você pode presumir que estamos lidando apenas com objetos neste desafio. Matrizes, funções, classes e assim por diante não precisam ser levados em consideração. No entanto, você ainda pode se desafiar cobrindo o maior número possível de casos diferentes.
Por exemplo:
type X = {
x: {
a: 1
b: 'hi'
}
y: 'hey'
}
type Expected = {
readonly x: {
readonly a: 1
readonly b: 'hi'
}
readonly y: 'hey'
}
type Todo = DeepReadonly<X> // should be same as `Expected`