Mapped types e template literal types
Avançado+35 XP
Crie tipos que geram outros tipos:
type Getters<T>→ para{ nome: string; idade: number }gera{ getNome: () => string; getIdade: () => number }. A chave é renomear comase um template literal type:
[K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]type Opcionalizar<T, K extends keyof T>→ torna só as chaves K opcionais (dica:Omit<T, K> & Partial<Pick<T, K>>).
E implemente criarGetters<T extends object>(obj: T): Getters<T> em tempo de execução.
Como resolver
- Escreva sua solução no editor.
- Executar mostra a saída no terminal, para você experimentar.
- Testar confere a solução. Passou em tudo? Exercício concluído!
Carregando editor…
digite "ajuda" para ver os comandos
dev@devjr:~/ts-mapped-types$