0dias seguidos0XP

Mapped types e template literal types

Avançado+35 XP

Crie tipos que geram outros tipos:

  1. type Getters<T> → para { nome: string; idade: number } gera { getNome: () => string; getIdade: () => number }. A chave é renomear com as e um template literal type:
[K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
  1. 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
  1. Escreva sua solução no editor.
  2. Executar mostra a saída no terminal, para você experimentar.
  3. Testar confere a solução. Passou em tudo? Exercício concluído!
index.ts · carregando TypeScript…
Carregando editor…
digite "ajuda" para ver os comandos
dev@devjr:~/ts-mapped-types$