Deno 1.22 发布

目录

更新默认的类型检查模式

移除Deno.emit()Deno.formatDiagnostics()和Deno.applySourceMap() API

默认启用Deno命名空间

--no-config标识

更新 Deno.resolveDns() API

引入新的Response.json()静态方法

在 LSP 默认启用 Linting

对测试运行程序的更新


Deno 1.22 已发布,主要变化如下:

  • 更新默认的类型检查模式
  • 移除不稳定的Deno.emit(), Deno.formatDiagnostics()和Deno.applySourceMap()API
  • Deno 命名空间在 worker 中默认可用
  • 新增--no-config flag
  • Navigator.userAgent
  • 升级Deno.resolveDns()API
  • 引入新的Response.json()静态方法
  • 在 LSP 默认启用 Linting
  • 升级不稳定的Deno.spawn()API
  • 更新 test runner
  • performance.timeOrigin&performance.toJSON

如果已经安装了Deno,可以通过运行以下命令升级到1.22:

deno upgrade

如果是第一次安装Deno,可使用下面列出的方法进行安装:

# Using Shell (macOS and Linux):
curl -fsSL https://deno.land/x/install/install.sh | sh# Using PowerShell (Windows):
iwr https://deno.land/x/install/install.ps1 -useb | iex# Using Homebrew (macOS):
brew install deno# Using Scoop (Windows):
scoop install deno# Using Chocolatey (Windows):
choco install deno

更新默认的类型检查模式

Deno 目前支持三种类型检查模式

  • 🌐Full:完整类型检查模式(full type checking)会检查整个项目,包括所有依赖项。如果依赖项包含类型错误,则会进行反馈。
  • 📁Local:局部类型检查模式(local type checking)会检查项目中的代码是否存在类型错误,但不针对所有依赖项进行类型检查。
  • None:不执行类型检查

在这个版本之前,Deno 使用 Full 作为默认类型检查模式。因此开发者会收到自己能直接控制之外的代码(依赖项)所报告的类型错误。团队认为这个默认值不够合理,所以在新版本将默认模式更改为 Local

移除Deno.emit()Deno.formatDiagnostics()和Deno.applySourceMap() API

Deno附带了Deno.emit() API,该API允许以编程方式编译和绑定源代码。这是一个不稳定的API,。支持这个API给翻译管道增加了很多复杂性,引入了许多微妙的边缘情况,并阻碍了长期以来想要做的一些重构。经过多次讨论,决定将此API从Deno名称空间中删除,并将其作为userland模块提供:deno_emit。这能够开发更适合用户需求的API。

默认启用Deno命名空间

Deno从1.0版本开始就支持Worker Web API。但是,默认情况下,Deno命名空间在worker上下文中不可用,除非它在选项bag中显式启用:

// This worker did NOT have access to the `Deno` namespace.
new Worker(new URL("./worker_without_deno.js", import.meta.url));// This worker did have access to the `Deno` namespace.
new Worker(new URL("./worker_without_deno.js", import.meta.url), {deno: true,
});

在这个版本中,更新了web worker,默认启用Deno命名空间,更好地匹配用户的期望。这意味着现在可以在web worker中默认使用Deno命名空间api,前提是设置了所需的权限。

// This worker will now have access to the `Deno` namespace.
new Worker(new URL("./worker_without_deno.js", import.meta.url));

你仍然可以使用WorkerOptions.deno选项来应用其他设置,比如自定义权限:

// Only allows read permissions to this worker.
new Worker(new URL("./worker_without_deno.js", import.meta.url), {deno: {permissions: {read: true,},},
});

--no-config标识

从Deno v1.18开始,运行时可以自动发现配置文件。虽然这个特性在大多数情况下都很方便和有用,但在某些情况下它并不是理想的,比如可能正在开发一个前端项目,它使用了非标准的TypeScript类型声明,这些声明在配置文件中定义。如果项目目录中还有一些独立的第三方工具(如udd),则不希望对这些工具应用相同的配置文件,因为它们可能需要不同的类型声明。

这个版本添加了一个——no-config标志,它禁用了配置文件的自动发现通过这个标志,所有配置都必须通过CLI标志显式地进行配置。

这个版本将userAgent属性添加到全局导航器对象。此属性设置为与在传出HTTP请求上设置的User-Agent报头相同的值。

console.log(navigator.userAgent);
// "Deno/1.22.0"

更新 Deno.resolveDns() API

这个版本更新了Deno.resolveDns() API。以下记录类型现在可以解析:

  • NS
  • CAA
  • SOA
  • NAPTR

引入新的Response.json()静态方法

此版本为Response全局添加了一个新的静态json()方法,支持从 JSON 结构轻松创建Response对象。

const json = { hello: "world" };// Previously:
const body = JSON.stringify(json);
const response = new Response(body, {headers: { "content-type": "application/json" },
});// Now:
const response = Response.json(json);

在 LSP 默认启用 Linting

Deno v1.22 默认启用 IDE/编辑器中deno lsp的 linting。此设置仍然可以禁用,但在大多数项目中,这意味着需要较少的 IDE/编辑器配置,因为大多数项目都启用了 linting。

对测试运行程序的更新

这个版本为测试运行器带来了另外一些更新。我们仍在对报告器输出进行迭代,以使其更具可读性。
"ERRORS"和"FAILURES"部分的头现在更明显了,失败的测试现在会显示Deno.test()调用的文件名和行号:

image.png

如果一个测试输出了输出,它的名字会在输出的后面一行重复,以便更容易地找出哪个测试失败/通过:

image.png

未捕获的错误现在有了一个更好的表示,并显示出可能出现错误的提示:

image.png

更多内容请查看该链接:deno.com/blog/v1.22

原文:Deno 1.22 发布 - 掘金 (juejin.cn)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/234528.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7 集中式日志和分布式跟踪

文章目录 日志聚合模式日志集中化的简单解决方案使用日志并输出分布式跟踪Spring Cloud Sleuth实现分布式跟踪 小结 前面的文章: 1、 1 一个测试驱动的Spring Boot应用程序开发 2、 2 使用React构造前端应用 3、 3 试驱动的Spring Boot应用程序开发数据层示例 4、…

北京大学漏洞报送证书

获取来源:edusrc(教育漏洞报告平台) url:教育漏洞报告平台(EDUSRC) 兑换价格:30金币 获取条件:北京大学任意中危或以上级别漏洞

机器学习系列--R语言随机森林进行生存分析(2)

随机森林(Breiman 2001a)(RF)是一种非参数统计方法,需要没有关于响应的协变关系的分布假设。RF是一种强大的、非线性的技术,通过拟合一组树来稳定预测精度模型估计。随机生存森林(RSF&#xff0…

软件测试|MySQL ORDER BY详解:排序查询的利器

简介 在数据库中,我们经常需要对查询结果进行排序,以便更好地展示数据或满足特定的业务需求。MySQL提供了ORDER BY子句,使我们能够轻松地对查询结果进行排序。本文将详细介绍MySQL ORDER BY的用法和示例,帮助大家更好地理解和应用…

电子学会C/C++编程等级考试2023年12月(一级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:数的输入和输出 输入一个整数和双精度浮点数,先将浮点数保留2位小数输出,然后输出整数。 时间限制:1000 内存限制:65536 输入 一行两个数,分别为整数N(不超过整型范围),双精度浮点数F,以一个空格分开。 输出 一行两个数,分…

Unity SVN更新提交小工具

Unity SVN更新提交小工具 前言使用说明必要前提源码参数说明 感谢 前言 Unity开发时每次都要到文件夹中操作SVN,做了一个小工具能够在Editor中直接操作。 使用说明 必要前提 前提是要安装好SVN,在文件夹右键能够看到安装的SVN 源码 using System…

c#自动更新升级工具

c#更新工具,wpf开发,所有windows桌面程序均可使用,基于.net 4.0,最低支持windos xp系统 更新工具优点 使用简单批量更新跨版本更新数据备份手动还原数据体积小 程序更新使用效果 使用简单 只需添加两个类,以及三个路径的指定,就可以从任何地方下载更新包,并解压到主程序目录…

linux异常情况,排查处理中

登录客户环境后,发现一个奇怪情况如下图,之前也遇到过,直接fuser -ck /backup操作的话,主机将会重启,因数据库运行中,等待停机维护时间,同时也在想办法不重启的情况下解决该问题 [rootdb ~]# f…

万界星空科技MES系统怎么管理生产?

MES系统(Manufacturing Execution System,制造执行系统)是一种用于管理和监控生产过程的软件系统。它通常与企业的ERP系统(Enterprise Resource Planning,企业资源计划)集成,用于实时收集和分析…

浅谈WAF——守护网络安全的无形之盾

随着信息化时代的到来,网络已逐渐融入我们日常生活的方方面面。然而,与此同时,网络安全问题却也如影随形。为此,一种名为“Web应用防火墙”的工具应运而生,简称”WAF”。 WAF是什么? WAF(Web …

Docker 存储卷管理

一、存储卷简介 存储卷是一种方便、灵活、高效的Docker容器内数据存储方式。存储卷可以在容器内的不同进程间共享数据,并且可以在容器之间共享和重用。 二、存储卷的优点 可以在容器之间共享和重用,避免了在不同容器之间复制数据的繁琐。对数据卷的修…

【Flink精讲】Flink数据延迟处理

面试题:Flink数据延迟怎么处理? 将迟到数据直接丢弃【默认方案】将迟到数据收集起来另外处理(旁路输出)重新激活已经关闭的窗口并重新计算以修正结果(Lateness) Flink数据延迟处理方案 用一个案例说明三…

leetcode 每日一题 2024年01月09日 字符串中的额外字符

题目 字符串中的额外字符 给你一个下标从 0 开始的字符串 s 和一个单词字典 dictionary 。你需要将 s 分割成若干个 互不重叠 的子字符串,每个子字符串都在 dictionary 中出现过。s 中可能会有一些 额外的字符 不在任何子字符串中。 请你采取最优策略分割 s &…

Qt5插件开发入门+示例

目的 1、为什么用插件 现在大家最讲模块化开发了,怎么算模块化,分成不同的类,分成不同的文件夹,高内聚,低耦合,这个当然算是。 从高层次讲,它们是在一起的,只是逻辑上的模块化,不是物理上的模块化,或者说不是彻底的模块化,彻底的模块化应该像一个辆自行车一样,车…

2023年阿里云云栖大会:前沿技术发布与未来展望

在2023年的阿里云云栖大会上,我见证了云计算和人工智能领域的又一历史性时刻。这次大会不仅是对未来科技趋势的一次深入探索,更是阿里云技术实力和创新能力的集中展示。 首先,千亿级参数规模的大模型通义千问2.0的发布,无疑将人工…

mysql之导入导出远程备份

文章目录 一、navicat导入导出二、mysqldump命令导入导出2.1导出2.1.1 导出表数据和表结构2.1.2 只导出表结构() 2.2 导入(使用mysqldump导入 包含t _log表的整个数据库 共耗时 20s;)方法一:方法二: 三、LOAD DATA INFILE命令导入导出(只针对单表)设置导…

Java中SpringBoot组件集成接入【Knife4j接口文档(swagger增强)】

Java中SpringBoot组件集成接入【Knife4j接口文档】 1.Knife4j介绍2.maven依赖3.配置类4.常用注解使用1.实体类及属性(@ApiModel和@ApiModelProperty)2.控制类及方法(@Api、@ApiOperation、@ApiImplicitParam、 @ApiResponses)3.@ApiOperationSupport注解未生效的解决方法5.…

2024年01月微软更新Bug 已解决 !Explorer.EXE 提示:Windows无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。

前倾概要 近期大量出现如上图问题,杀毒,系统急救箱都没反应,罪魁祸首就是微软更新! 点击什么都是:Windows无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。 但软件使用正常,还能通过建立…

渐变登录页

效果演示 实现了一个简单的登录页面的样式和交互效果。 Code <div class"flex"><div class"login color">Login</div><label class"color">Username :</label><input type"text" class"input&…

Python——通过统计图像像素值初步分析图像噪声类型

图像噪声是指图像中不随真实场景变化而变化的随机干扰。噪声会影响图像的质量&#xff0c;因此需要对其进行去噪处理。 目录 一、图像噪声1.1 噪声类型1.2 结合峰度和偏度判断噪声1.2.1 峰度和偏度1.2.2 常见噪声的峰度和偏度 二、代码三、测试结果四、总结 一、图像噪声 图像…