类型系统:实现一个条件类型,用于根据值的类型提取对象的键

TypeScript Hard types

任务 «类型系统:实现一个条件类型,用于根据值的类型提取对象的键»

写一个函数 extractKeysByValueType,它接收一个对象和一个值类型(以字符串形式,例如 'string' 或 'number')。该函数应返回一个数组,其中包含值具有指定类型的键。使用 TypeScript 泛型和条件类型来实现正确的类型推断。如果对象为空或没有具有该类型的键,则返回空数组。禁止使用 any。

输入格式

第一行:包含一个对象的JSON字符串。第二行:包含类型名称的字符串('string'、'number'、'boolean')。

输出格式

字符串,包含一个JSON格式的键数组(例如,["a","b"])。如果没有键,则输出[]。

示例

示例 1

输入
{"a": 1, "b": "hello", "c": true} number
输出
["a"]

示例 2

输入
{"x": "foo", "y": "bar"} string
输出
["x","y"]

示例 3

输入
{"a": 1, "b": 2, "c": 3} boolean
输出
[]
main.ts