首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何返回一个对象,其中的键是从输入对象推断出来的?

要返回一个对象,其中的键是从输入对象推断出来的,可以使用以下方法:

  1. 首先,需要遍历输入对象的属性,获取属性名。
  2. 判断属性名的类型,可以使用typeof操作符或其他方法进行判断。
  3. 根据属性名的类型,创建一个新的对象,并将属性名作为键,属性值作为值。
  4. 返回新创建的对象。

以下是一个示例代码,演示如何实现这个功能:

代码语言:txt
复制
function inferKeys(inputObj) {
  const inferredObj = {};

  for (const key in inputObj) {
    const keyType = typeof inputObj[key];

    // 根据属性名的类型创建新的键值对
    switch (keyType) {
      case 'string':
        inferredObj[key] = '';
        break;
      case 'number':
        inferredObj[key] = 0;
        break;
      case 'boolean':
        inferredObj[key] = false;
        break;
      // 可根据需要添加其他类型的推断逻辑
      default:
        inferredObj[key] = null;
    }
  }

  return inferredObj;
}

const input = {
  name: 'John',
  age: 25,
  isStudent: true
};

const inferredOutput = inferKeys(input);
console.log(inferredOutput);

这段代码会输出以下结果:

代码语言:txt
复制
{
  name: '',
  age: 0,
  isStudent: false
}

这个示例中,输入对象的属性名分别为"name"、"age"和"isStudent",根据属性名的类型推断出了相应的默认值,并返回了一个新的对象。

推荐的腾讯云相关产品:无

请注意,以上代码只是一个示例,实际应用中可能需要根据具体需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【TypeScript 演化史 — 第六章】对象扩展运算符和 rest 运算符及 keyof 和查找类型

    虽然 twitterHandle 变量一个普通字符串,但 rest 变量一个对象其中包含剩余两个未被解构属性。 对象扩展属性 假设咱们希望使用 fetch() API 发出 HTTP 请求。...对象扩展仅拷贝属性值,如果一个对另一个对象引用,则可能导致意外行为。 keyof 和查找类型 JS 一种高度动态语言。在静态类型系统中捕获某些操作语义有时会很棘手。...以一个简单 prop 函数为例: function prop(obj, key) { return obj[key]; } 它接受一个对象一个,并返回相应属性值。...一个对象不同属性可以有完全不同类型,咱们甚至不知道 obj 是什么样子。 那么如何在 TypeScript 中编写这个函数呢?...输入索引类型查询或 keyof,索引类型查询keyof T产生类型 T属性名称。

    3.2K50

    深入学习下 TypeScript 中泛型

    TypeScript 提供了多种方法来表示代码中对象其中一种使用接口。...第一个,Keys,你想要确保你对象拥有的所有。在这种情况下,它是所有商店代码联合。 T 当嵌套对象字段具有与父对象相同类型,在这种情况下,它表示运送到自身商店位置。...在本节中,您将看到如何创建映射类型。想象一下,您想要创建一个类型,给定另一个类型,该类型返回一个新类型,其中所有属性都设置为具有布尔值。...此 BooleanFields 类型一个使用场景创建一个选项对象。假设您有一个数据库模型,例如用户。 数据库中获取此模型记录时,您还将允许传递一个指定要返回哪些字段对象。...由于 someFunction 变量类型函数,因此条件类型将评估条件真实分支。这将返回类型 U 作为结果。 类型 U 函数返回类型推断出来,在本例中布尔值。

    14310

    深入学习下 TypeScript 中泛型

    TypeScript 提供了多种方法来表示代码中对象其中一种使用接口。...第一个,Keys,你想要确保你对象拥有的所有。在这种情况下,它是所有商店代码联合。 T 当嵌套对象字段具有与父对象相同类型,在这种情况下,它表示运送到自身商店位置。...在本节中,您将看到如何创建映射类型。 想象一下,您想要创建一个类型,给定另一个类型,该类型返回一个新类型,其中所有属性都设置为具有布尔值。...此 BooleanFields 类型一个使用场景创建一个选项对象。假设您有一个数据库模型,例如用户。 数据库中获取此模型记录时,您还将允许传递一个指定要返回哪些字段对象。...由于 someFunction 变量类型函数,因此条件类型将评估条件真实分支。这将返回类型 U 作为结果。 类型 U 函数返回类型推断出来,在本例中布尔值。

    38.9K30

    【TypeScript 演化史 -- 6】对象扩展运算符和 rest 运算符及 keyof 和查找类型

    虽然 twitterHandle 变量一个普通字符串,但 rest 变量一个对象其中包含剩余两个未被解构属性。 对象扩展属性 假设咱们希望使用 fetch() API 发出 HTTP 请求。...对象扩展仅拷贝属性值,如果一个对另一个对象引用,则可能导致意外行为。 keyof 和查找类型 JS 一种高度动态语言。在静态类型系统中捕获某些操作语义有时会很棘手。...以一个简单 prop 函数为例: function prop(obj, key) { return obj[key]; } 它接受一个对象一个,并返回相应属性值。...一个对象不同属性可以有完全不同类型,咱们甚至不知道 obj 是什么样子。 那么如何在 TypeScript 中编写这个函数呢?...输入索引类型查询或 keyof,索引类型查询keyof T产生类型 T 属性名称。

    2.5K30

    Java 到 Kotlin,再从 Kotlin 回归 Java

    在 Kotlin 中,当你申明一个 var 或者 val 时,你通常让编译器右边表达式类型中猜测变量类型。我们将其称做局部变量类型推断,这对程序员来说是一个很大改进。...另一种情况,如果参数按分行格式写出来,你还得去寻找返回类型。要在下面这个方法定义中找到返回类型,你需要花多少时间? ? 关于相反顺序第三个问题限制了IDE自动完成功能。...在标准顺序中,因为类型开始,所以很容易找到类型。一旦确定了类型,IDE 就可以根据类型给出一些与之相关变量名称作为建议。这样就可以快速输入变量名,不像这样: ?...换句话说,你得手工输入完整变量名。 ? ? 伴生对象 ? 一个 Java 程序员来到 Kotlin 阵营。 “嗨,Kotlin。我新来,有静态成员可用吗?”他问。 “没有。...我很喜欢对象声明概念——单例种很有用模式。语言中去掉静态成员就不太现实了。我们在Java中已经使用了若干年静态日志记录器,这是非常经典模式。

    1.8K40

    让你TypeScript代码更优雅,这10个特性你需要了解下

    下面我们通过几个例子来了解 TypeScript 高级类型推断如何工作。 1....泛型函数类型推断 在泛型函数中,TypeScript 可以根据传入参数自动推断出类型。以下一个简单泛型函数 identity,它接收一个参数并返回相同值。...五 、掌握 TypeScript 索引访问类型 索引访问类型(Indexed Access Types) TypeScript 中一个强大特性,它允许你对象类型中获取属性类型,使你能够动态地访问属性类型...1、keyof 操作符基本用法 keyof 操作符会提取一个对象类型所有,并将这些组成一个联合类型。...在这个示例中,user 一个 PartialUser 类型实例,其中所有属性都是可选

    13810

    分享 30 道 TypeScript 相关面的面试题

    然后,让我们深入研究这个神奇列表,其中,包含 30 个富有洞察力 TypeScript 问题,范围基础知识到更高级(分为 25 个针对中级角色,5 个针对更高级角色),确保你为下一个重大机会做好准备...当您事先不知道对象但知道其值类型时,这是很有用。 21、TypeScript 如何处理可选链接和 nullish 合并? 答案:TypeScript 支持可选链接 (?.)...一个逻辑运算符,当其左侧操作数为空或未定义时返回其右侧操作数,否则返回其左侧操作数。这在您想要回退到默认值情况下非常有用。 22、什么映射类型,以及如何在 TypeScript 中使用它们?...答:TypeScript 类型推断指编译器在没有显式类型注释情况下自动推断和分配类型能力。虽然鼓励显式类型,但编译器会尽可能使用上下文(如变量初始化、返回语句等)来推断类型。...上下文输入等功能有助于函数表达式等场景。 27、什么类型防护,如何创建自定义类型防护? 答案:类型保护执行运行时检查并缩小条件块内类型范围表达式。

    76030

    TS中keyof和typeof

    这两个东西用来进行类型推断。...如果使用any大法,就写出下面这样代码了: function getProp(obj: any, key: string) { return obj[key] } 这样固然可以,但是指不定哪天就蹦出来一个...我目的就是,把那句Colors as any改掉,如果想用keyof的话,那么我们起码要获取到Colors类型,但是这里他一个字面量对象,所以本文要提到一个东西就引出来了,它就是typeof。...getColor(key: keyof typeof Colors) { return Colors[key] } 再进阶 如果我想让输入#FF0000这样字符串并且把Red返回去,那么在不改变...除此之外,Object.entries方法会把对象键值对逐个返回,变成一个[key,value]数组,所以这里[1]代表着值,[0]代表着

    1.2K20

    掌握 TypeScript:20 个提高代码质量最佳实践

    类型推断 TypeScript 编译器根据变量赋值值自动推断变量类型能力。这意味着你不必在每次声明变量时都显式指定类型。相反,编译器会根据值推断类型。...例如,在以下代码片段中,TypeScript 会自动推断 name 变量类型为字符串: let name = "John"; 类型推断在处理复杂类型或将变量初始化为函数返回值时特别有用。...最佳实践9:“never” 在 TypeScript 中,never 一个特殊类型,表示永远不会发生值。它用于指示函数不会正常返回,而是会抛出错误。...TypeScript 一个强大功能,可以创建一个表示对象类型。...T>(obj: T, key: K) { return obj[key]; } 这将允许你在编译时检查 key 是否为对象 T 之一,并返回对应值。

    4.1K30

    关于TypeScript中泛型,希望这次能让你彻底理解

    给出代码段展示了如何在React组件中使用 useState Hook来管理一个用户对象状态,并提供了一个 setUserField 函数来更新用户对象特定字段。...为了提高类型安全性,可以使用泛型来约束 field 必须 User 类型,value 必须对应于该 User 类型值。...比如,在代码中看到这样语句时: const a: number = 12; 这意味着开发者可能并不知道TypeScript已经知道a一个推断出来数字类型。...target); } 如果你初学者,你可能会这样使用它: identifyType(5); 但是,TypeScript可以你作为第一个参数传递值中推断出泛型类型,最好这样使用:...,因为它会你作为第一个参数传递值中被推断出来

    15610
    领券