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.mzph.cn/news/609619.shtml

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

相关文章

资源调度(2)-----pod的亲和性和反亲和性

集群调度: schedule的调度算法。 预算策略:过滤出合适的节点 优先策略: 选择部署的节点 nodeName:硬匹配,不走调度策略。node01. nodeSelector:根据节点的标签选择,会走调度算法。 只要是走调度算法,在不满…

[VSCode] VSCode 常用快捷键

文章目录 VSCode 源代码编辑器VSCode 常用快捷键分类汇总01 编辑02 导航03 调试04 其他05 重构06 测试07 扩展08 选择09 搜索10 书签11 多光标12 代码片段13 其他 VSCode 源代码编辑器 官网:https://code.visualstudio.com/ 下载地址:https://code.visua…

【排序算法】二、希尔排序(C/C++)

「前言」文章内容是排序算法之希尔排序的讲解。(所有文章已经分类好,放心食用) 「归属专栏」排序算法 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 希尔排序1.1 原理1.2 代码实现(C/C)1.3 特性总结 希尔排序 1.1…

数据结构-测试1

一、判断题 1.队列中允许插入的一端叫队头,允许删除的一端叫队尾(F) 队列中允许删除的一端叫队头(front),允许插入的一端叫队尾(rear) 2. 完全二叉树中,若一个结点没有左孩子&#…

Developer Tools for Game Creator 1

插件包含: 持久世界时间管理系统 单击以生成对象或预设 游戏内调试控制台 游戏内事件控制台 控制台管理控制 命令模板脚本 游戏内屏幕截图 低分辨率和高分辨率图像 缩略图生成 移动支持 使用Game Creator Action或拖放来激活和控制组件,无需编码。 通过此资产,您可以获得: …

初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(1)

文章目录 🏆 初识 Elasticsearch 应用知识🔎 初识 Elasticsearch 应用知识(1)🍁🍁 01、什么是 Elasticsearch?🍁🍁 02、能列出 10 个使用 Elasticsearch 作为其搜索引擎或数据库的公司吗&#x…

2023 年度合辑 | 出海大年的全球化产品洞察和服务动向

2023 年度合辑 年度关键词 出海&全球化 出海 & 全球化通信服务全面升维 出海大年,融云全球互联网通信云作为“全球化最佳基础设施”之一,发挥技术沉淀和实践积累带来的核心优势,结合市场变化对出海 & 全球化通信服务进行了全方位…

李沐之神经网络基础

目录 1.模型构造 1.1层和块 1.2自定义块 1.3顺序块 1.4在前向传播函数中执行代码 2.参数管理 2.1参数访问 2.2参数初始化 3.自定义层 3.1不带参数的层 3.2带参数的层 4.读写文件 4.1加载和保存张量 4.2加载和保存模型参数 1.模型构造 1.1层和块 import torch fr…

c JPEG编码,但有错误

#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #include <unistd.h> #include <sys/ioctl.h> #include <linux/videodev2.h> //v4l2 头文件 #include <strin…

MySQL之数据的导入、导出远程备份

目录 一. navicat的导入、导出 1.1 导入 1.2 导出 二. mysqldump命令导入、导出 2.1 导出 2.2 导入 三. LOAD DATA INFILE 命令导入、导出 3.1 设置 3.2 导出 3.3 导入 3.4 查看secure_file_priv设置 四. 远程备份 4.1 导出 4.2 导入 五. 思维导图 一. navicat的导入、导…

podman configure insecure certificate registry【podman 设置非安全镜像仓库】

预备条件 docker registry仓库私搭并配置证书centos 7.9 部署 harbor 镜像仓库实践harbor 部署入门指南Podman 部署私有镜像仓库 设置 $ vim /etc/hosts 192.168.23.47 registry.ghostwritten.com$ vim /etc/containers/registries.conf ... [[registry]] location "r…

7.2 1D PARALLEL CONVOLUTION—A BASIC ALGORITHM

正如我们在第7.1节中提到的&#xff0c;所有输出&#xff08;P&#xff09;元素的计算可以在卷积中并行完成。这使得卷积成为并行计算的理想问题。根据我们在矩阵-矩阵乘法方面的经验&#xff0c;我们可以快速编写一个简单的并行卷积内核。为了简单起见&#xff0c;我们将从1D卷…

【liunx】线程池+单例模式+STL,智能指针和线程安全+其他常见的各种锁+读者写者问题

线程池单例模式STL,智能指针和线程安全其他常见的各种锁读者写者问题 1.线程池2.线程安全的单例模式3.STL,智能指针和线程安全4.其他常见的各种锁4.读者写者问题 喜欢的点赞&#xff0c;收藏&#xff0c;关注一下把&#xff01; 1.线程池 目前我们学了挂起等待锁、条件变量、信…

【排序算法】一、排序概念和直接插入排序(C/C++)

「前言」文章内容是排序算法之直接插入排序的讲解。&#xff08;所有文章已经分类好&#xff0c;放心食用&#xff09; 「归属专栏」排序算法 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、排序概念的介绍二、直接插入排序2.1 原理2.2 代码实现&#xff08;C/C&#xf…

Linux的网络设置

一.查看网络配置 1.查看网络接口信息 - ifconfig ① 直接使用 ifconfig 命令 默认显示活动的网卡 解析&#xff1a; ② ifconfig 具体网卡名称 只显示具体的网卡的信息 ③ ifconfig -a 显示所有的网卡 ④ ifconfig 网卡名称 down 关闭网卡 ifdown 关闭网卡 …

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

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

【产品应用】一体化伺服电机在管道检测机器人中的应用

一体化伺服电机在管道检测机器人的应用正日益受到关注。管道检测机器人是一种能够在管道内部进行检测和维护的智能化设备&#xff0c;它可以检测管道的内部结构、泄漏、腐蚀等问题&#xff0c;以确保管道的安全和稳定运行。而一体化伺服电机作为机器人的动力源&#xff0c;对于…

20230403读书笔记|《苏轼词集》——试问岭南应不好,此心安处是吾乡

20230403读书笔记|《苏轼词集》——试问岭南应不好&#xff0c;此心安处是吾乡 导读卷一卷二卷三 在书架里加了好几本苏轼词集&#xff0c;很多词是重复的&#xff0c;但这并不影响多读几本&#xff0c;苏轼的词豪迈大气&#xff0c;豁达爽朗&#xff0c;蛮值得一读的。有不少都…

中小型家具制造业使用制造管理MES系统应该注意什么?

随着人们生活水平变高&#xff0c;人们对家具的要求也在提高。为了应对越来越高的要求&#xff0c;企业开始寻找更有效的方法&#xff0c;其中就包括mes系统&#xff0c;那么中小型家具企业在使用mes的过程中应该注意什么呢&#xff1f; 第一&#xff0c;要考虑选择什么样的mes…

【数据结构】二叉树的链式实现

树是数据结构中非常重要的一种&#xff0c;在计算机的各方个面都有他的身影 此篇文章主要介绍二叉树的基本操作 目录 二叉树的定义&#xff1a;二叉树的创建&#xff1a;二叉树的遍历&#xff1a;前序遍历&#xff1a;中序遍历&#xff1a;后序遍历&#xff1a;层序遍历&#…