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

您可能会在打字稿中忽略详细信息

时间:2023-03-08 11:46:43 网络应用技术

  您已经在项目中练习Typescript(以下称为TS)的本文默认值。本文不会解释什么特定语法等。本文仅总结了开发人员在使用TS开发项目时可能会忽略的一些细节。

  const语句派生ts的类型作为由两种类型系统实现的语言,可用于显示语句类型或通过注释自动派生类型。请参见以下示例。参数的值通过TS类型得出,并得出为Boolean类型。那么参数TS会自动得出布尔类型吗?

  看看结果:

  显然,这些参数是自动推论的,而不是布尔值,因为原因是构成部分而不是let或var.使用const声明的基本类型的值,该值无法修改分配后,因此从TS得出的范围是最狭窄的范围范围,即C的类型是真实的,而不是布尔值

  然后让我们看一下const语句的以下部分的类型推导

  这里的奇怪之处在于,TS派生了数字类型,而不是文字卷12。在上述示例的第一个示例中,const或Let语句对TS派生有影响。这些都是基于基本类型的。如果您使用const声明对象,则TS的推导将不会缩小,并且该规则将被无效。

  索引签名索引签名句子是通过索引签名告诉TS,指定的对象可能具有更多的键。该语法的意思是“在此对象中,T键的类型是u”。

  要注意的要点:必须将T的类型分配给编号|字符串。当然,密钥的值可以是任何单词,而不限于“键”

  元组是数组类型的子类型。这是定义数组的特殊方法。长度是固定的,每个索引的值具有固定类型。

  大都会团体可以支持可选属性

  元组可以支持其余参数,即其余参数

  以上是元组的基本用法,但是TS实际上会放松元组时的要求。从TS得出的类型尽可能宽,而不是缩小。以及乌龟组所在的索引值的类型,即默认情况下,放松到元组中。:

  揭示答案:

  浓密的眉毛实际上得出了类型。

  如果我们希望上述代码得出元组的类型,是否有任何解决方案?是的,总共有三种方法。

  方法一:

  方法两个:

  作为const方法具有副作用,它将将类型设置为ReadOnly和const类型的类型,即A IS的实际类型:

  方法三:

  我们可以使用TS来得出剩余参数的类型,以缩小Tuplet组的类型

  这里的关键是,由于模型描述了其余参数,因此TS得出了元组类型。

  当项目使用大量的元组类型,但不想使用TS默认类型推导,我们可以使用此技术。

  枚举的作用是列出该类型中包含的值,枚举是映射到值的关键的无序数据结构。

  一个枚举可以分为多个声明。TS将自动合并它,并自动与接口合并。

  TS更灵活,可以通过价值访问枚举,也可以通过钥匙访问,但是很容易出现问题。

  让我们看一下上面的第二行的错误

  让我们看一下语言[6],WTF和LANGD实际得出的字符串,显然存在问题。

  为了解决上述不安全的访问操作,我们可以通过CORST ENUM指定列举的安全子集的使用

  如果您使用安全子集,则应由错误提示,因为const枚举不允许反向搜索。此行为类似于普通的JavaScript对象。使用const枚举后,TS不会生成JS代码。此功能谨慎。如果您想在使用const枚举时生成JS代码,请在ts.config.js中打开选项。

  TS中这种类型注释的这种注释在JS中是非常特殊的存在。没有太多讨论的用法。让我们谈谈这个。

  另外,它也可以用作一种类型。

  由于这种调用方法的特殊性,我们在TS中有一个“保证”解决方案。对于函数,如果在您定义的函数中使用了此功能,则可以在函数的第一个参数中声明此类型。调用函数时,TS确保其类型必须是您预期声明的类型。查看代码:

  对于类,此类型也可用于返回注释方法的类型。

  我们在ES6中实现了一个简单的集合数据结构。首先,查看ES6集的用法

  我们还使用TS实现简单集(无特定实现,仅类型说明)

  这可以实现,但是我们是否要定义Simples的子类?

  从上面的代码可以看出,每当我们扩展派生类时,我们都必须介绍添加方法以覆盖添加方法,这更麻烦。有一种更好的方法来不那么麻烦吗?

  我们可以使用此类型注释来重写以下SimpleSet类:

  风扇类型模型是多态性类型参数。通常的方法是括号。当然,您也可以使用其他字母。

  风扇类型参数使用Sprite括号来声明Sprite括号的主要功能是该位置仅限于模型的范围。TS将确保当前范围中的相同模型类型最终将绑定到相同的特定类型。请参阅代码

  因此

  一词中,使用模型时,TS绑定到模型类型:用于函数,函数呼叫期间的绑定,类别,类型和接口的分类,别名和接口时,类型和类型的界面以及Interfacessaid的接口,使用别名和实现接口。

  模型语句的位置?

  查看代码:

  请注意,该模型不能在构造函数中声明。应该在类语句中声明

  迅速区分void,任何未知,从不简单地通过几个代码片段来区分这些类型,我不会在此处详细介绍。

  快速理解代码的类型:在这里看,我们可以模拟换句话说,t类型是sub -type sub -type或相同的类型。这肯定会确保可以将t类型分配给U类型。

  上面的代码是TS中型大小更改中的协作更改,然后我们使用此表格快速理解TS类型更改中的其他方法:

  TS中的每个复杂成员都将合作,包括对象,类,数组和功能。

  功能的协调与其他类型的协作略有不同,这里的讨论很少。

  功能类型重负载首先澄清什么是重载功能。重载函数是多个呼叫签名的功能。首先查看如何编写函数以调用签名:

  两种写作方式是等效的,但是使用方式是不同的。但是,在功能类型重载的情况下,更建议写完整的方式。

  让我们看一下功能类型类型的下一个示例:

  运行上述代码,我们会发现错误,错误如下:

  出于错误原因,这是由TS呼叫签名重型负载机制引起的。如果功能储备储备声明多个重型签名,从呼叫方的角度来看,储备法的类型是每个呼叫签名的consubine。因此,在实施储备金功能时,我们需要在组合后声明呼叫签名,该函数无法自动得出。我们可以将储备金功能更改为以下方式解决:

  换句话说,当手动实施函数时,这两个呼叫是平行的。

  关于签名重负荷,您可以查看浏览器DOM API,并且DOM API中有很多重载。

  伴奏模式的伴奏模式应该是一个罕见的概念。伴奏对象模式来自Scala,目的是匹配同名的对象和类别。

  在理解伴奏对象模式之前,我们需要知道TS中的类型和值分别为不同的名称空间。这意味着可以在同一范围中具有同一名称的类型和值。例如,在类,类可以声明值或类型:

  在理解上面的概念之后,我们查看伴奏对象模式:

  使用上述伴奏对象模式有几个好处:

  除了使用伴奏对象模式和类型别名外,辅助对象模式也可以使用接口和命名空间。

  安全扩展的原型是JS是一种非常动态的语言,因此我们可以在JS运行时任意修改构建的方法,例如push,object.assign(),等等。动态扩展是一种不安全的行为。但是,对于TS,我们可以放心扩展原型。

  让我们这样做吗?:我们要在数组的原型中添加ZIP方法。为了安全地扩展数组原型,我们需要做两件事:

  代码:

  当使用TS清楚地告诉TS时,我们经常使用类型的断言,这是我们期望的类型。那么什么是非空的单词?

  让我们首先看一下那些可以空的类型,或者这是一种相对特殊的类型。它为此提供了TS的语法,用于确定是否确定类型。

  让我们看一下代码:

  上述代码中将有两个错误。

  让我们首先看第一个错误。第一个错误是因为在新的范围中,TS不知道代码是否会修改对话框DOM,但是TS的视图,返回的呼叫类型将是。

  第二个错误是,尽管我们必须知道必须有一个父节点,但TS仍将推断的类型是

  解决方案当然是:

  使用非空断言的目的是清楚地告诉TS,我们确定对话框。ID,document.getElementById函数呼叫和元素。结果是已定义的parentNode。这样,通过这种方式,TS不会报告错误。

  与非空的陈述相反,应该是“明确的分配”,因此我不能在此处重复。

  首先,我们需要知道TS是一个结构化的系统。但是我们可以通过TS实现名义类型。

  什么是名义类型?

  首先,让我们知道什么是结构化类型系统

  目前,将标称类型发送出去!让我们看一下如何通过代码使用名义类型。标称类型在TS中不是平滑的,但是在大型项目或大型团队中,标称类型可以更好地避免错误。

  错误信息:

  尽管看起来很混乱,但没有其他更好的方法。将其用作这里唯一的标志的原因是,TS中实际上有两种实际类型类型,一个是另一个类型。

  让我们看一下标识的类型,然后首先设置代码:

  为什么要进行event.value,但是事件不能完善?因为句柄函数的类型是userevent,这并不意味着必须将其引入UserTextEvent或Usermouseeevent类型的值,甚至可以被转移到两者的浓度中。因为可以重复协作类型的成员,TS使用更安全的方法清楚地阐明了该类型的特定情况。

  如何解决完善此TS的问题?看代码:

  我们只需要一个字面数量即可标记类型和类型的各种情况,但是字面的数量必须满足以下内容:

  非常简单 - 使用映射类型TS提供了非常强大且容易 - 使用的映射类型,例如在记录中实现的实现。

  现在我们提供了如此良好的映射类型,我们可以看一下映射类型?

  解释:

  输入操作符号的操作符号很简单,类似于对象值的操作。查看代码,您将了解:

  推断R推断属于一种条件类型,该类型是可以在条件中声明的模型。回头看我们以前如何使用模型?

  本质在条件类型中的语句中,我们不使用此Sprite方法,我们使用推断关键字。

  让我们看一个稍微复杂的例子:

  从某种意义上说,推断r等于模型语句,即推断r == t,推断r属于行语句。

  原始:https://juejin.cn/post/7111351347114410020