当前位置: 首页 > 网络应用技术

快来做!加深打字稿高级类型和类型的体操

时间:2023-03-08 20:41:01 网络应用技术

  Typescript已将语法类型扩展到JavaScript。我们可以将类型添加到变量中。在编译期间,它将进行类型检查。结合编辑器,我们还可以做出更准确的智能提示。此外,Typescript还支持高级类型的灵活性以增加系统系统的类型。

  就像JavaScript的高级别函数一样,是生成函数的函数。React的高级别分量是组件的组成部分。Typescript是生成类型的类型。

  Typescript高级类型是一种类型的类型参数(也称为通用)。它将计算一系列类型的类型参数以产生新类型。

  例如,此选择是高级类型。它具有类型的参数T和K。类型参数将在一系列类型的计算逻辑之后返回新类型。

  TypeScript高级类型将根据类型参数找到新类型。此过程将涉及一系列类型的类型计算逻辑。这些类型的计算逻辑被称为。当然,这不是一个形式的概念,而是社区的昵称,因为某些类型的计算逻辑更为复杂。

  打字稿的类型已完成,这意味着它可以描述任何计算逻辑。简而言之,这是周期和有条件判断的语法。

  由于Typescript的类型系统非常强大,因此我们将进行一些高级的体操类型。

  我们将做这些体操:

  我将这些体操分为数字,弦乐类和对象。我已经掌握了计算这三种类型的逻辑的定律。我相信您的体操水平将得到改善。

  在进行体操之前,您必须首先花费TypeScript的类型语法,也就是说,可以完成哪种计算逻辑。

  现在应该说语法,让我们看一下循环和判断:

  TS型条件判断的语法是。

  扩展关键字用于确定A类型B。示例中的类型参数t是1,是数字类型,因此最终返回是正确的。

  没有TS的循环,但可以用来通过递归来实现循环。

  我们需要构造一个具有长度n的数组,然后我们必须传递类型参数LEN,元素的类型参数ELE和数组的类型参数ARR(用于递归)。

  那么计算逻辑的类型是确定ARR的长度是否为LEN。如果是这样,请返回构造的ARR。如果不是,请添加一个元素以继续结构。

  通过这种方式,我们递归创建一个长度为Len。

  TS支持新字符串:

  它还根据模式匹配支持字符串的一部分:

  由于Str的模式,它可以匹配它,将零件放在通过推论声明的本地类型变量中,然后将局部变量的值返回。

  TS支持对象获得属性和值:

  您还可以创建一个新的对象类型:

  通过KEYOF取出OBJ的所有属性名称,穿越属性名称,然后通过IN进行相应的属性值,然后使用它们来生成新对象类型NewObj。

  我们已经传递了常见的TS类型语法,包括条件判断,周期(递归),字符串操作(构造字符串,占用串的一部分),对象操作(构造对象,采用属性值)。LET的使用来实现。

  我们将体操分为三个类别,然后总结法律。

  体操1:实现高级类型的添加,哪个可以做数字加法。

  怎么做?

  数组类型可以采用长度属性,不是一个数字吗?可以通过构造某个长度数组来添加。

  当我们意识到通过递归构建一定长度的新数组的高级类型时:

  只要构建两个不同长度的阵列,然后合并在一起,然后进行长度。

  我们测试:

  我们通过构造数组来实现其他方法!

  摘要:TS用于进行数字操作的高级类型只能用于使用具有不同长度的数组,然后进行长度,因为没有类型的加法,减法和乘法操作员。

  体操2:重复字符串n时。我们以前学到的字符串的结构,即,只要执行计数,就完成了重复时间的数量。

  计数涉及数字操作,并且该层是通过数组结构进行的。

  因此,我们必须计算递归结构阵列和递归结构字符串,然后确定阵列长度到达目标并返回构造函数。

  因此,有四种类型的参数:str(待重复字符串),计数(重复数字),arr(用于计数的数组)和resstr(构造字符串):

  我们的递归构造数组和字符串,判断结构的长度,如果您达到计数,请返回构造的字符串resstr,否则递归结构将继续。

  有测试:

  摘要:当递归构造字符串时,通过递归构造数组来计数数组数。在计算条件之前,生成目标字符串。

  该体操仅使用构造函数字符串,并且该字符串不用于通过模式匹配子弦。我们做一个体操。

  体操3:要获得简单的JS解析器,需要根据模式匹配字符串添加(11,22)的函数名称的分析以及参数字符串的分析。),括号,数字和逗号(常见),我们实现了相应的高级类型。

  分析功能名称函数名称由字母组成。只要我们一一判断角色,判断它是否是字母,然后记录角色,然后处理其余的弦递归直到不是字母。

  我们首先定义字母类型:

  还有保留中间结果的类型:

  然后将角色一一判断,然后将字符的字符串获得到中间结果中:

  我们拿了一个角色,然后判断是否是一封信。

  有测试:

  根据我们的需求,我们通过匹配子弦的模式来解析函数名称。

  然后继续分析其余部分。

  括号和括号的匹配方式是相同的,括号只有一个字符。它们无需重新审议。只要一次。

  有测试:

  继续分析其余的:

  数量数量的分析也是一个字符和一个字符。确定是否匹配。

  有测试:

  继续分析其余的:

  分辨率逗号与括号相同。它只需要在没有递归的情况下做出角色判断即可。

  有测试:

  在这一点上,我们已经完成了对所有角色的分析,并且可以按顺序组织解析。

  对单个令牌的总体分析进行了分析。总体分析是组织的顺序。每次分析后,其余字符串将传递到下一个分析逻辑中。经过所有分析,您可以获得各种信息。

  有测试:

  如果您取得了一项伟大的成就,我们将使用TS类型来实现简单的解析器!

  摘要:TS类型可以通过模式匹配从子弦中取出。我们可以使用一个字符和一个字符来递归确定令牌,然后将令牌分开以实现字符串的分析。

  完整的代码如下:

  体操4:实现高级类型,删除数字属性值构造函数的语法,属性名称以及对象类型中语法类型的属性值。

  我们通过对象的属性名称通过密钥来构造一种新类型的对象,然后判断属性值。

  属性值返回绝不意味着此属性不存在,并且可以实现过滤的效果。

  有测试:

  概括:

  Typescript已将语法类型扩展到JavaScript,并支持高级类型生成类型。

  高级类型是按类型声明的类型参数类型,类型参数也称为通用类型。计算逻辑基于类型参数生成最终类型类型的类型类型为昵称为类型的体操。

  打字稿的类型已完成,可以描述任何计算出的逻辑:

  我们做了这些类型的体操:

  应该注意的是,数字类应通过数组的长度来计算以进行长度,然后将字符串的模式匹配与推断匹配,以保存中间结果以进行子弦。这两个相对困难。

  实际上,各种高级类型,只要它们熟悉TS类型语法,他们就可以在考虑逻辑后逐步编写它。编写JS逻辑并不是必不可少的,但是它用于生成类型的逻辑。

  阅读本文后,您是否觉得没有困难?