首页 > 其他分享 >关于 TypeScript 的变量声明和解构赋值(Destructuring Assignment)

关于 TypeScript 的变量声明和解构赋值(Destructuring Assignment)

时间:2023-07-02 19:22:24浏览次数:40  
标签:TypeScript Destructuring url 代码 解构 match 赋值

看下面这段代码:

const { queryParams, fragment } = this.router.parseUrl(url);
const [, path] = url.match(this.URL_SPLIT) ?? [, ''];

这段 TypeScript 代码虽然较短,但仍然展示了许多 TypeScript 的特性和语法。以下是对这段代码的分析,涵盖了相关的 TypeScript 特性和语法。

  1. 变量声明和解构赋值(Destructuring Assignment): 这段代码中使用了解构赋值,它是一种方便的从对象或数组中提取值并赋值给变量的方法。在这里,queryParamsfragment 是从 this.router.parseUrl(url) 返回的对象中解构出来的属性。

    示例:

    const { queryParams, fragment } = this.router.parseUrl(url);
    
  2. 对象属性访问(Object Property Access): 代码中使用了对象属性访问,通过.操作符来访问对象的属性。在这里,this.router 是一个对象,它具有 parseUrl 方法。

    示例:

    this.router.parseUrl(url);
    
  3. 方法调用(Function and Method Calls): 在这段代码中,调用了 this.router.parseUrl 方法,该方法接收一个参数 url。此外,还调用了 url.match 方法,该方法接收一个参数 this.URL_SPLIT

    示例:

    this.router.parseUrl(url);
    url.match(this.URL_SPLIT);
    
  4. 可选链操作符(Optional Chaining): 可选链操作符 ?. 允许在对象属性可能为 nullundefined 的情况下编写更简洁的代码。在这段代码中,使用了可选链操作符 ?? 来处理 url.match(this.URL_SPLIT) 的返回值,以防它为 null

    示例:

    url.match(this.URL_SPLIT) ?? [, ''];
    
  5. 数组解构赋值(Array Destructuring Assignment): 在这段代码中,通过解构赋值从 url.match(this.URL_SPLIT) ?? [, ''] 的结果中提取了第二个元素(索引为 1 的元素)并将其赋值给变量 path

    示例:

    const [, path] = url.match(this.URL_SPLIT) ?? [, ''];
    
  6. 模板字符串(Template Strings): 在这段代码中,没有直接使用模板字符串,但给定的默认值 ' ' 是一个模板字符串。模板字符串是一种使用反引号(`)表示的字符串,它允许在字符串中插入表达式。

这段代码总共包含了 6 个 TypeScript 的特性和语法。虽然代码较短,但仍然展示了 TypeScript 编程的一些关键方面,例如解构赋值、可选链操作符和方法调用。这些特性和语法使得 TypeScript 代码更加简洁、易读和可维护。

标签:TypeScript,Destructuring,url,代码,解构,match,赋值
From: https://www.cnblogs.com/sap-jerry/p/17521227.html

相关文章

  • vane 一个适用于前端打工人的全栈框架,nodejs+vue3+typescript
    vane写这个的初衷是因为每次用node写接口的时候总是需要一些写大一堆的东西,也有些人把很多接口都放在一个js文件内,看起来很是杂乱,后来用到nuxt写的时候,感觉用文件名来命名接口路径很是方便,无论是query参数还是params参数,都可以通过文件名来命名,也可以通过文件夹层级......
  • js中的解构赋值
    JavaScript的解构赋值语句是一种方便的语法,用于从数组或对象中提取值,并将它们赋给变量。它可以让你以一种简洁的方式从复杂的数据结构中提取数据。数组的解构赋值例如,假设有一个数组[1,2,3],你可以使用解构赋值语句将数组中的值分别赋给变量:const[a,b,c]=[1,2,3];......
  • TypeScript学习笔记
    一、类型①可以使用 | 来连接多个类型(联合类型) ② 类型断言,可以用来告诉解析器变量的实际类型 ③ {}用来指定对象中可以包含哪些属性 ④函数结构的类型声明 ⑤数组的类型声明⑥元组,元组就是固定长度的数组 ⑦enum枚举⑧类别的别名 二、编......
  • typescript的必要性及使用
    1前言作为一个前端语言,Javascript从最初只是用来写页面,到如今的移动终端、后端服务、神经网络等等,它变得几乎无处不在。如此广阔的应用领域,对语言的安全性、健壮性以及可维护性都有了更高的要求。尽管ECMAScript标准在近几年有了长足的进步,但是在类型检查方面依然毫无建树。在这......
  • Typescript 内置工具类型
     Partial<T>将类型T的属性都变为可选属性,并构造一个新类型1interfaceInter{2name:string3age:number4}56typeT=Partial<Inter>//{name?:string;age?:number;}  Required<T>  将类型T的属性都变为必选属性,并构造一个新类型 和Pa......
  • typescript中 == 和 === 的区别
    在TypeScript中,==和===是用于比较两个值是否相等的操作符。 ==是相等比较操作符,它在比较值时进行隐式类型转换。它会尝试将两个操作数转换为相同类型,然后再进行比较。这种隐式类型转换可能会导致一些意想不到的结果。例如:console.log(1=="1");//trueconsole.log(t......
  • TypeScript又出新关键字了?
    TypeScript5.2将引入一个新的关键字:using。当它离开作用域时,你可以用Symbol.dispose函数来处置任何东西。{constgetResource=()=>{return{[Symbol.dispose]:()=>{console.log('Hooray!')}}}usingresource=getResource();......
  • 【TypeScript】Element 组件导入在 TypeScript 5 报错:模块 ““element-plus““ 没有
    报错现象解决方法typescript5.0版本升级,使用了compilerOptions.moduleResolution:"bundler"的模块编译选项。moduleResolution:模块解析策略,是指编译器在查找导入模块内容时所遵循的流程因此目前要解决报错,我们只需要修改tsconfig.json下的为node就行。/*Bundle......
  • TypeScript中的类
    1.类的基本语法在TypeScript中,使用class关键字来定义类。以下是一个简单的类的示例:classPerson{privatename:string;age:number;constructor(name:string,age:number){this.name=name;this.age=age;}greet(){console.log(`H......
  • C# and TypeScript – Enum Flags
    前言以前就有提过EnumFlags,但平日不常用.最近翻Angular源码,发现它很多地方用到,而且没有封装语义代码.一堆符号真的看不惯啊...于是又去复习了一遍,熟悉熟悉.顺便写一篇做记入呗.这篇C#和TypeScript会一起讲. 参考 深入理解TypeScript–枚举Enum,Fl......