Sistema de tipos: implementar un tipo condicional para extraer claves de un objeto según el tipo de valor

TypeScript Hard types

Tarea «Sistema de tipos: implementar un tipo condicional para extraer claves de un objeto según el tipo de valor»

Escriba una función extractKeysByValueType, que recibe un objeto y un tipo de valor (como una cadena, por ejemplo 'string' o 'number'). La función debe devolver un arreglo de claves cuyos valores tengan el tipo especificado. Utilice genéricos de TypeScript y tipos condicionales para una inferencia de tipos correcta. Si el objeto está vacío o no hay claves con ese tipo, devuelva un arreglo vacío. Está prohibido usar any.

Formato de entrada

Primera línea: una cadena JSON con un objeto. Segunda línea: una cadena con el nombre del tipo ('string', 'number', 'boolean').

Formato de salida

Una cadena que contiene un arreglo de claves en formato JSON (por ejemplo, ["a","b"]). Si no hay claves, muestre [].

Ejemplos

Ejemplo 1

ENTRADA
{"a": 1, "b": "hello", "c": true} number
SALIDA
["a"]

Ejemplo 2

ENTRADA
{"x": "foo", "y": "bar"} string
SALIDA
["x","y"]

Ejemplo 3

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