系统软件 应用软件 图形软件 行业软件 安全相关 网络软件 聊天软件 影音软件 教育教学 驱动工具 编程开发 插件下载 源码下载 APP电脑版 其他类别

TypeScript

v4.1.3

TypeScript

  • 软件大小:53.4 MB
  • 软件语言:简体中文
  • 软件授权:共享软件
  • 软件类型:编程开发
  • 软件平台:WinAll
  • 更新时间:2022-01-27 15:11
  • 星级评分:4级
  • 软件官网:https://www.downza.com/
好评:50%顶一个
坏评:50踩一个

TypeScript简介

TypeScpt是一款编程软件,主要目的是扩展JavaScpt的功能,让用户在编辑代码时得到更多的帮助。新版本优化了很多内容,不匹配的参数不再相关。以前,不相关的参数可以通过将它们与任何。随着TypeScpt 4.1的改变,语言现在可以完全跳过这个过程。这意味着可分配性现在在某些情况下会失败,但这也意味着一些过载的解决方案也会失败。例如,util.pmisifyNode.js中的重载解析可能会选择TypeScpt 4.1中的其他重载,有时会导致下游出现新的或不同的错误!

TypeScpt软件功能

TypeScpt通过添加类型来扩展JavaScpt。

通过理解JavaScpt,TypeScpt可以节省您在运行代码之前捕捉错误和提供修复的时间。

任何浏览器,任何操作系统,任何运行JavaScpt的地方。完全开源

1.JavaScpt等。

TypeScpt是一种开源语言,它是在JavaScpt(世界上最常用的工具之一)上通过添加静态类型定义而构建的。

类型提供了一种描述对象形状的方法,提供了更好的文档,并允许TypeScpt验证您的代码是否正常工作。

在TypeScpt中,编写类型可以是可选的,因为类型推断使您能够在不编写其他代码的情况下获得许多函数。

2.你可以信任的结果

所有有效的JavaScpt代码也是TypeScpt代码。您可能会遇到类型错误,但这不会阻止您运行生成的JavaScpt。虽然你可以采取更严格的行动,但这意味着你仍然可以控制它们。

TypeScpt代码由TypeScpt编译器或Babel转换成JavaScpt代码。这个JavaSpt是干净的,简单的代码可以在任何运行JavaSpt的地方运行:在浏览器中,在节点上。或者在您的应用程序中。

3.逐渐采用

采用TypeScpt不是二进制选择。您可以首先用Doc注释现有的JavaScpt,为TypeScpt切换一些文件,并准备好代码库,以便随着时间的推移完成转换。

TypeScpt的类型推断意味着您不需要对代码进行注释,除非您想要更高的安全性。

TypeScpt软件特色

1.一致的好工具。

通过在TypeScpt中处理许多编辑器集成,您可以在许多编辑器中获得一致的体验。

这使您可以轻松地在编辑器之间切换,如Visual Studio、Visual Studio Code、Nova、Atom、崇高文本、Emacs、Vim、WebStorm和Eclipse。

TypeScpt的编辑器集成支持JavaScpt,所以您可能已经在使用TypeScpt了。

2.以标准发展

TypeScpt团队为TC39委员会做出了贡献,这有助于指导JavaScpt语言的开发。

当新函数到达阶段3时,它可以包含在TypeScpt中。

例如,TypeScpt团队支持可选链、空合并运算符、throw表达式和RegExp匹配索引等建议。

TypeScpt教程

模板文本类型

TypeScpt中字符串的文字类型使我们能够对需要一组特定字符串的函数和API进行建模。

这非常好,因为字符串文字类型基本上可以拼写我们的字符串值。

我们还喜欢在映射类型中使用字符串文字作为属的名称。从这个意义上说,它们也可以用作构建模块:

但是在另一个地方,字符串文字类型可以用作构建块:构建其他字符串文字类型。

这就是TypeScpt 4.1带来模板文字字符串类型的原因。它的语法与JavaScpt中的模板文字字符串相同,但它用于类型位置。当与具体的文字类型一起使用时,它将通过连接内容来生成新的字符串文字类型。

当工会担任替代职位时会发生什么?它生成可以由每个关节成员表示的每个可能的字符串文字的。

除了发行说明中可爱的例子,你还可以使用这个功能。例如,UI组件的多个库提供了一种在其API中同时指定垂直和水平对齐方法的方法,通常使用单个字符串(例如)同时指定两者& # 8221;底部灯& # 8221;。它们之间垂直对齐& # 8221;top & # 8221,”中间& # 8221;和& # 8221;底部& # 8221;,并与& # 8221;水平对齐。左& # 8221;,”中心& # 8221;和& # 8221;ght & # 8221,有9种可能的字符串,其中前一个字符串中的每一个都使用破折号与后一个字符串中的每一个连接。

虽然这个API有很多例子,但它仍然只是一个玩具例子,因为我们可以手动编写它。实际上,对于9根弦来说,这可能没问题。但是,当需要大量字符串时,应该考虑提前自动生成,以节省每种类型的工作量(或者只使用stng,这样会更容易理解)。

一些实用价值来自于动态创建新的字符串文字。例如,想象一个makeWatchedObjectAPI,它接受一个对象并生成一个几乎相同的对象,但有一种新的方法来检测上属的变化。

请注意,您不仅可以收听& # 8221;firstNameChanged & # 8221,您还可以收听事件& # 8221;名字& # 8221;。我们将如何进入?

这样,当我们给出错误的属时,我们就能构造出错误的东西!

我们还可以对模板文本类型做一些特殊的处理:我们可以从替换位置进行推断。我们可以概括最后一个例子,从ntName字符串的每个部分推断相关的属。

在这里,我们将其作为一种通用方法。当用户用字符串& # 8221;firstNameChanged & # 8217,TypeScpt将尝试为推断正确的类型k。为此,它将匹配K内容& # 8221;已更改& # 8221;并推断出stng & # 8220名字& # 8221;。一旦TypeScpt被清除,on方法就可以获得firstName原始对象的类型,在这种情况下stng就是这种情况。同样,当我们呼叫& # 8221;ageChanged & # 8221发现该属的类型年龄为数字)。

推理可以用不同的方式组合,通常是解构字符串,用不同的方式重构。实际上,为了帮助修改这些字符串的文字类型,我们添加了一些新的实用程序类型别名来修改字母的大小写(即,将它们转换为小写和大写字符)。

的新类型别名是大写、小写、大写和非大写。前两个转换字符串中的每个字符,后两个仅转换字符串中的第一个字符。

映射类型中的键重新映射

就像刷新一样,映射类型可以基于任何键创建新的对象类型。

或者基于其他对象类型的新对象类型。

到目前为止,映射类型只能使用您提供的键来生成新的对象类型。但是,很多时候您希望能够根据输入创建新的键或过滤掉键。

这就是TypeScpt 4.1允许您使用newas子句在类型中重新映射键的原因。

有了这个新的as子句,您可以通过使用模板文字类型等函数,轻松地基于旧名称创建一个通用名称。

你甚至可以通过生成。这意味着省略在某些情况下,您不必使用额外的助手类型。

递归条件类型

在JavaScpt中,常见的功能是展平和建立任何级别的容器类型。例如,考虑。然后()配对。。然后(& # 8230;)解开每个pmise,直到找到一个不“类似pmise”的值,并将其传递给回调。在Array S上还有一个比较新的扁平化方法,可以用来知道要扁平化的深度。

出于所有实际目的,在TypeScpt的类型系统中不可能表达这一点。虽然有一些破解方法可以实现,但最终这些类型看起来非常不合理。

这就是为什么TypeScpt 4.1减轻了对条件类型的一些限制——这样他们就可以对这些模式建模。在TypeScpt 4.1中,条件类型现在可以在其分支中立即引用自己,从而更容易编写递归类型别名。

例如,如果我们想写一个类型来获得嵌套数组的元素类型,我们可以写下面的deepFlatten类型。

同样,在TypeScpt 4.1中,我们可以编写一个Awaited类型来深度解包Pmises。

请记住,虽然这些递归类型很强大,但是应该负责任地小心使用它们。

首先,这些类型可以做很多工作,这意味着它们可以增加打字时间。尝试用Collatz猜想或斐波那契序列对模型建模可能会很有趣,但不要通过将模型附加到npm文件。d.ts

然而,除了大量计算之外,这些类型在足够复杂的输入上可能达到内部递归深度限制。当达到这个递归限制时,它将导致编译时错误。一般来说,最好不要使用这些类型,而是写一些在更实际的例子中失败的东西。

访问索引(& # 8211;noUncheckedIndexedAccess)

TypeScpt有一个叫做索引签名的函数。这些签名是类型系统的信号,用户可以访问任何命名的属。

在上面的例子中,选项有一个索引签名,它指示所有未被列出的已访问属应该有类型stng | number。对于乐观的代码来说,这通常很方便,因为它假设您知道自己在做什么,但事实是,JavaScpt中的大多数值并不支持每个潜在的属名。例如,大多数类型不会像前面的示例那样具有由Math.random()创建的属性键的值。对于很多用户来说,这种行为是不愉快的,他们觉得这并没有利用严格性& # 8211;stctNullChecks .

这就是为什么TypeScpt 4.1附带了一个名为& # 8211;noUncheckedIndexedAccess .在这种新模式下,每个属访问(如foo.bar)或索引访问(如foo [& # 8220;酒吧& # 8221;])被认为可能是未定义的。这意味着在我们的最后一个示例中,opts.yadda的类型将是stng | number | undefined,而不仅仅是stng | number。如果需要访问这个属,必须先存在或者使用非空断言运算符(后缀!字符)。

使用& # 8211;NoUncheckedIndexedAccess是为了更严格地索引数组,即使是在边界的循环中。

如果不需要索引,可以使用for-of循环或forEach调用来遍历每个元素。

此标志可能便于捕获越界错误,但对于许多代码来说可能会有噪音,因此这& # 8211;Stct标志不会自动启用它。但是,如果您对这个特性感兴趣,请随意尝试并确定它是否适合您团队的代码库!

路径没有基本Url。

使用路径映射是很常见的——通常是为了更好地导入,通常是为了模拟monorepo链接行为。

不幸的是,指定路径以启用路径映射还需要指定一个名为baseUrl的选项,这也允许相对于说明符路径访问baseUrl。这通常也会导致自动导入使用的路径不佳。

在TypeScpt 4.1中,路径可以使用此选项baseUrl而不使用它。这有助于避免其中一些问题。

CheckJs意味着allowJs

以前,如果您想要启动一个选定的JavaScpt项目,您必须同时设置allowJs和checkJs。这在体验中有点烦人的摩擦,所以默认情况下,checkJs会立即暗示allowJs。

对17 X工厂做出反应

TypeScpt 4.1通过编译器选项的两个新选项,支持React 17即将推出的函数jsx和jsxs工厂函数jsx:

react-jsx

react-jsxdev

这些选项分别用于生产和开发编译。通常,一个选项可以从另一个选项扩展而来。例如,用于生产的tsconfig.json的构造可能如下所示:

用于开发的版本可能如下所示:

对文档@参见标签的编辑器支持

目前Doc标签@see标签在TypeScpt和JavaScpt的编辑器中有较好的支持。这允许您在标签后面的虚线名称中使用定位定义等功能。例如,在以下示例中,只有第一个的定义或单据注释中的定义可以定义为C:

巨大的变化

自由民主党的变化

Lib.d.ts可能有一组已更改的API,这可能部分是由于DOM类型是如何自动生成的。一个具体的变化是Reflect.enumerate已被删除,因为它已从ES2016中删除。

抽象成员不能标记为异步

标记为的成员抽象不能再标记为异步。解决方案是删除async关键字,因为调用方只关心返回类型。

错误位置的任何/未知传播。

以前,对于像foo & amp & amp其他的,foowas的类型是any或unknown,这个表达式的整个类型是the。

比如过去这里的x的类型是{somePp: stng}。

但是,在TypeScpt 4.1中,我们更小心地确定这种类型。对左边的类型一无所知。,所以我们向外传播任何未知,而不是右边的类型。

我们看到的最常见的模式通常与布尔值兼容,尤其是在谓词函数中。

一般来说,合适的解决方案是切换foo & ampSomeExpression to!!foo & amp和。一些表达.

在Pmise中,解析参数不再是可选的。

当编写以下代码时

您可能会收到类似以下内容的错误:

这是因为resolve不再有可选参数,所以默认情况下,您现在必须为它传递一个值。一般来说,使用Pmises会捕获合法的错误。的典型解决方案是向其传递正确的参数,有时还会添加显式类型参数。

但是,有时确实需要在没有参数的情况下调用resolve()。在这些情况下,我们可以给Pmise一个显式的void泛型类型参数(也就是说,把它写成Pmise)。这利用了TypeScpt 4.1中的新特性,其中潜在的空尾参数可以是可选的。

TypeScpt 4.1附带了一个快速修复程序来帮助解决这个问题。

条件差价创造可选属

在JavaScpt中,对象传播(如{ & # 8230;Foo})不会产生错误的值。因此,在代码{ & # 8230;O},如果foo为null或,将跳过未定义的。

许多用户利用这一优势“有条件地”传播属。

在这里,如果定义了宠物,那么它的属宠物主人将被分散——否则,没有属将被分散到返回的对象中。

copyOwner的返回类型过去是基于每个价差的联合类型:

这准确地模拟了事情将如何发生:如果定义了pet,Person将显示fm的所有属;否则,不会在结果中定义它们。这是一个全有或全无的行动。

然而,我们已经看到,这种模式已经达到了极致,单个对象有数百个扩展,每个扩展可能会增加数百个或数千个属。事实证明,由于各种原因,这最终会变得非常昂贵,通常不会带来太多利润。

在TypeScpt 4.1中,返回的类型有时使用所有选定的属。

最终会表现得更好,整体也会表现得更好。

收起介绍展开介绍
  • 安卓合集
  • 软件合集
  • 浏览器
  • 电脑管家
  • 安卓游戏
更多 >> 安卓合集安卓合计

热门推荐

装机必备软件