Typescript 中的 ESestructuring

typescript 中的 esestructuring

解构使得将数组中的值或对象中的属性解包为不同的变量成为可能。

优点

使代码简洁且更具可读性。我们可以轻松避免重复的解构表达式。

一些用例

从对象、数组中获取变量值。

let array = [1, 2, 3, 4, 5];let [first, second, ...rest] = array;console.log(first, second, rest);//expected output: 1 2 [3,4,5]let objectfoo = { foo: 'foo' };let { foo: newvarname } = objectfoo;console.log(newvarname);//expected output: foo// nested extractionlet objectfoobar = { foo: { bar: 'bar' } };let { foo: { bar } } = objectfoobar;console.log(bar);//expected output: bar

登录后复制仅更改对象中所需的属性。

  let array = [    { a: 1, b: 2, c: 3 },    { a: 4, b: 5, c: 6 },    { a: 7, b: 8, c: 9 },  ];  let newarray = array.map(({ a, ...rest }, index) => ({    a: index + 10,    ...rest,  }));  console.log(newarray);/* expected output: [  {    "a": 10,    "b": 2,    "c": 3      },  {    "a": 11,    "b": 5,    "c": 6  },  {    "a": 12,    "b": 8,    "c": 9  }]*/

登录后复制将参数中的值提取到独立变量中。

// object destructuring:  const objectdestructure = ({ property }: { property: string }) => {    console.log(property);  };  objectdestructure({ property: 'foo' });  //expected output: foo  // array destructuring:  const arraydestructure = ([item1, item2]: [string, string]) => {    console.log(item1 , item2);  };  arraydestructure(['bar', 'baz']);  //expected output: bar baz// assigning default values to destructured properties:  const defaultvaldestructure = ({    foo = 'defaultfooval',    bar,  }: {    foo?: string;    bar: string;  }) => {    console.log(foo, bar);  };  defaultvaldestructure({ bar: 'bar' });//expected output: defaultfooval bar

登录后复制从对象中获取动态键值。

const obj = { a: 1, b: 2, c: 3 };const key = 'c';let { [key]: val } = obj;console.log(val);//expected output: 3

登录后复制交换值。

const b = [1, 2, 3, 4];[b[0], b[2]] = [b[2], b[0]]; // swap index 0 and 2console.log(b);//expected output : [3,2,1,4]

登录后复制获取对象的子集。

const obj = { a: 5, b: 6, c: 7 };const subset = (({ a, c }) => ({ a, c }))(obj);console.log(subset); // expected output : { a: 5, c: 7 }

登录后复制进行数组到对象的转换。

const arr = ["2024", "17", "07"],      date = (([year, day, month]) => ({year, month, day}))(arr);console.log(date);/* expected output: {  "year": "2024",  "month": "07",  "day": "17"} */

登录后复制在函数中设置默认值。

function somename(element, input, settings={i:"#1d252c", i2:"#fff", ...input}){    console.log(settings.i);    console.log(settings.i2);}somename('hello', {i: '#123'});somename('hello', {i2: '#123'});/* expected output: #123#fff#1d252c#123 */

登录后复制获取数组长度、函数名称、参数数量等属性。

let arr = [1,2,3,4,5];let {length} = arr;console.log(length);let func = function dummyfunc(a,b,c) {  return 'a b and c';}let {name, length:funclen} = func;console.log(name, funclen);/* expected output : 5dummyfunc 3*/

登录后复制组合数组或对象。

//combining two arraysconst alphabets = ['A','B','C','D','E','F'];const numbers = ['1','2','3','4','5','6'];const newArray = [...alphabets, ...numbers]console.log(newArray);//expected output: ['A','B','C','D','E','F','1','2','3','4','5','6']//combining two objectsconst personObj = { firstname: "John", lastname: "Doe"};const addressObj = { city: "some city", state: "some state" };const combinedObj = {...personObj, ...addressObj};console.log(combinedObj);/* expected output: {    "firstname": "John",    "lastname": "Doe",    "city": "some city",    "state": "some state"} */

登录后复制

以上就是Typescript 中的 ESestructuring的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2672986.html

(0)
上一篇 2025年3月7日 13:34:20
下一篇 2025年2月19日 07:23:01

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Nodejs 事件循环阶段

    什么是事件循环? 事件循环是 Node.js 异步架构的核心。即使 JavaScript 是单线程的,它也是一种允许 Node.js 执行非阻塞 I/O 操作的机制。事件循环不断检查事件队列并处理事件,让 Node.js 能够高效地处理多个…

    2025年3月7日
    000
  • JS 地图

    javascript 中的 map 是键值对的集合,其中键可以是任何类型。它保留插入的顺序,这意味着项目按照添加的顺序进行迭代。 地图的主要特征; 唯一键:地图中的每个键都是唯一的。键的任何数据类型:与对象不同,键可以是任何数据类型,包括函…

    2025年3月7日
    200
  • 最热门的 React 书籍 4

    React,用于构建用户界面的流行 JavaScript 库仍然是 Web 开发的主导力量。随着生态系统的发展,了解最新的实践和模式对于开发人员来说至关重要。这里列出了 2024 年最热门的 React 书籍,可以帮助您保持领先地位并掌握 …

    2025年3月7日
    200
  • 通过实际示例了解回调函数

    想象你是一名厨师并且你有一个帮手。你的工作是做饭,但首先,你需要从商店购买一些特殊的食材。你让你的助手去商店,当他们回来时,他们告诉你他们有食材,所以你可以继续做饭。 我们需要的: node.js 安装在您的计算机上。node-fetch …

    2025年3月7日
    200
  • GitHub 上的新存储库 WebFormsJS 就在这里!

    webformsjs 是一个 javascript 库,它提供了与 codebehind 框架中的 web 控件交互的基础设施;这使得开发人员可以轻松地在服务器端管理 html 标签。 高效 web 开发的新架构 web 开发一直是一个复杂…

    2025年3月7日
    200
  • JavaScript 中的事件循环:它的工作原理及其重要性

    javascript 尽管很简单,但其背后运行着一个复杂而强大的引擎。该引擎最关键的方面之一是事件循环。了解事件循环对于 javascript 开发人员至关重要,因为它在处理异步操作、确保代码顺利执行和优化性能方面发挥着重要作用。在本文中,…

    2025年3月7日
    200
  • 如何使用 Cloudflare 函数接收 Discord 消息

    如何使用 cloudflare 页面和 cloudflare functions 直接在 discord 上接收来自 html 表单的消息。 我们将把这个过程分为四个主要部分:创建 html 表单、在 discord 上配置 webhook…

    2025年3月7日
    200
  • JS 中的集合是什么?

    集合是唯一值的集合。与数组不同,集合不能有重复的元素。 set 的基本操作 创建一个集合 您可以使用 new set() 构造函数创建一个新的 set。例如: const uniquenumbers = new set([1, 2, 3, …

    2025年3月7日
    200
  • 开发社区您好!我的软件开发之旅

    内存已更新当然,贾拉尔!这是您在开发社区网站上发布的第一篇文章的草稿: 开发社区您好! 我很高兴加入这个由开发人员和技术爱好者组成的令人惊叹的社区。我叫 Jalal,我对软件开发和技术充满热情。我想花点时间介绍一下自己并分享一下我迄今为止的…

    2025年3月7日
    200
  • 简短而有趣的 JavaScript 片段

    javascript 是一种极其通用且功能强大的编程语言,广泛用于 web 开发。无论您是经验丰富的开发人员还是新手,拥有一组方便的 javascript 代码片段都可以节省您的时间并简化您的编码过程。在本文中,我编译了 15 个简短而精彩…

    2025年3月7日
    200

发表回复

登录后才能评论