当前位置: 首页 > 知识库问答 >
问题:

带对象析构的typescript可选链接

鲜于宏义
2023-03-14

我刚刚将typescript更新为3.7.4,我正在尝试编辑我的代码。

interface Test
  event: {
    queryStringParameters: { [name: string]: string } | null;
  }
}
const test:Test = (event) => {
  // const { no } = event?.queryStringParameters; //Property 'no' does not exist on type '{ [name: string]: string; } | null'.ts(2339)
  const no = event?.queryStringParameters?.no; //It works but I want to use above that.
  ...
}

现在有可用的功能吗?

共有1个答案

祁鸿哲
2023-03-14

这是因为queryStringParameters可以为null,并且null对象不包含no属性。您将需要使用null合并运算符

const { no } = event?.queryStringParameters ?? { no: null };

请注意,??操作符目前只能通过Typescript3.7+使用,但目前还不是标准的JS操作符。有关更多详细信息,请参见TypeScripts回购的相关讨论:https://github.com/microsoft/typescript/issues/26578

 类似资料:
  • 问题内容: 我目前正在尝试将收到的JSON对象转换为具有相同属性的TypeScript类,但无法使其正常工作。我究竟做错了什么? 员工阶层 员工字符串 我的尝试 链接到打字稿游乐场 问题答案: 编译器允许您将返回的对象强制转换为类的原因是因为typescript基于结构子类型。 您实际上并没有的实例,而是拥有一个具有相同属性的对象(如在控制台中看到的)。 一个简单的例子: (操场上的代码) 没有错

  • 主要内容:TypeScript,JavaScript,TypeScript 类型模板,TypeScript,JavaScript,TypeScript,JavaScript,鸭子类型(Duck Typing)对象是包含一组键值对的实例。 值可以是标量、函数、数组、对象等,如下实例: var object_name = { key1: "value1", // 标量 key2: "value", key3: function() { // 函数 }, key4:["content1", "cont

  • 我有一个带有一些可选字段和该类型变量的TypeScript接口: 我想将放入同名变量中。

  • 我想创建一个Mongoose模式,用以下限制验证下面的对象: 字段2是可选的(0-1关系), 代码示例 提前谢谢。

  • 可选链是一个调用和查询可选属性、方法和下标的过程,它可能为 nil 。如果可选项包含值,属性、方法或者下标的调用成功;如果可选项是 nil ,属性、方法或者下标的调用会返回 nil 。多个查询可以链接在一起,如果链中任何一个节点是 nil ,那么整个链就会得体地失败。 注意 Swift 中的可选链与 Objective-C 中的 nil 信息类似,但是它却工作在任意类型上,而且它能检测成功还是失败

  • 本页包含内容: 可选链可替代强制解析 为可选链定义模型类 通过可选链调用属性 通过可选链调用方法 使用可选链调用下标脚本 连接多层链接 链接可选返回值的方法 可选链(Optional Chaining)是一种可以请求和调用属性、方法及下标脚本的过程,它的可选性体现于请求或调用的目标当前可能为空(nil)。如果可选的目标有值,那么调用就会成功;相反,如果选择的目标为空(nil),则这种调用将返回空(