Sistema de tipos: implementar tipo condicional para extrair chaves de objeto pelo tipo de valor

TypeScript Hard types

Tarefa «Sistema de tipos: implementar tipo condicional para extrair chaves de objeto pelo tipo de valor»

Escreva a função extractKeysByValueType, que recebe um objeto e um tipo de valor (como string, por exemplo 'string' ou 'number'). A função deve retornar um array de chaves cujo valor possui o tipo especificado. Use generics do TypeScript e tipos condicionais para inferência correta dos tipos. Se o objeto estiver vazio ou não houver chaves com esse tipo, retorne um array vazio. É proibido usar any.

Formato de Entrada

Primeira linha: string JSON com um objeto. Segunda linha: string com o nome do tipo ('string', 'number', 'boolean').

Formato de Saída

String contendo um array de chaves no formato JSON (por exemplo, ["a","b"]). Se não houver chaves, exibir [].

Exemplos

Exemplo 1

ENTRADA
{"a": 1, "b": "hello", "c": true} number
SAÍDA
["a"]

Exemplo 2

ENTRADA
{"x": "foo", "y": "bar"} string
SAÍDA
["x","y"]

Exemplo 3

ENTRADA
{"a": 1, "b": 2, "c": 3} boolean
SAÍDA
[]
main.ts