通过Node.js带来对ES2020的更新支持并增加对ES模块的支持,如何将TypeScript配置为输出利用所有这些新功能的JavaScript代码?
从Node.js开始14.0.0
,已支持100%的ES2020,并且对ES模块的支持已经到来!如果您知道要针对该版本或更高版本,则最佳配置应如下所示:
"module": "ES2020"
和 "moduleResolution": "node"
Node.js 14支持加载模块而不是旧的CommonJS格式,我们确实要告诉TypeScript我们正在使用Node.js的规则来解析模块。
"allowSyntheticDefaultImports": true
为了提供向后兼容性,Node.js允许您使用默认导入来导入CommonJS包。该标志告诉TypeScript
import
在CommonJS模块上可以使用。
"target": "ES2020"
这告诉TypeScript可以输出ES2020中的html" target="_blank">功能的JavaScript 语法 。实际上,这意味着它将例如输出可选的链接运算符和async /
await语法,而不是嵌入polyfill。
"lib": ["ES2020"]
这告诉TypeScript可以使用ES2020或更早版本中引入的 函数和属性 。实际上,这意味着您可以使用eg
Promise.allSettled
和BigInt
。
因此,完整的配置为:
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"lib": ["ES2020"],
"module": "ES2020",
"moduleResolution": "node",
"target": "ES2020"
}
}
除此之外,我们还需要告诉Node.js将.js
本项目中的文件视为ES模块。原因是Node.js必须与为较旧版本的Node.js编写的代码保持向后兼容性。这可以通过添加"type": "module"
到您的package.json
:
{
"type": "module"
}
如果您来自早期版本的Node.js,则另一个更改是,导入文件时的文件扩展名现在是必需的。这意味着您必须.js
在本地进口商品的末尾写出。请注意,.js
即使您正在导入实际上具有文件扩展名的TypeScript文件,也是如此.ts
。这似乎有些不确定,但是其中一位TS贡献者的评论解释了为什么会这样。
以下是一些有关如何编写import
语句的示例:
// Built-in Node.js modules
import { readFileSync } from 'fs'
// CommonJS packages from Npm
import md5File from 'md5-file'
// The local file "a.ts"
import { a } from './a.js'
如果您现在想坚持使用CommonJS,为避免上述说明,可以使用以下配置:
{
"compilerOptions": {
"lib": ["ES2020"],
"module": "CommonJS",
"target": "ES2020"
}
}
如何找到哪个公式更接近欧拉公式 没有编程 first=e=(11/n)^n 第一个=2.7048138294215285 秒=1/e=(1-1/n)^n 第二=2.7319990264290284 所以第一个更接近欧拉,但我的输出总是给我第二个为什么? 忘了提n是100
假设我们有下面的Jade源码: - var title = 'yay' h1.title #{title} p Just an example 当 compileDebug 选项不是false, Jade 会编译时会把函数里加上 __.lineno = n;, 这个参数会在编译出错时传递给rethrow(), 而这个函数会在Jade初始输出时给出一个有用的错误信息。 function anonym
问题内容: 还有其他类似PHPExcel的PHP组件吗? 问题答案: 有一些类可以生成PHP Excel文件(真正的excel文件,而不是.csv文件)。我使用 (DEPRICATED) 请参阅编辑2: https://github.com/PHPOffice/PHPExcel 但是:尝试使用Java excel READER读取这些生成的excel文件时遇到了问题,因此此PHP脚本中可能存在错误
问题内容: 这是“ 用量角器设置Firefox轮廓”主题的后续。 根据howto,可以使用特殊的“ helper” js代码 设置firefox配置文件,该代码使用和库来动态制作编码的firefox配置文件。 这对我一直有效,直到我尝试 使用多个浏览器并进行配置: 通过此设置,我遇到了一个错误(此处完整回溯): 规范模式与任何文件都不匹配。 据我了解,这意味着使用firefox配置文件的设置缺少密
问题内容: 例: 在package中,类型定义一个包装方法的接口。 什么是最简单的方法 找出 哪些类型 的标准库(即在此列在golang.org/pkg) 满足这个接口 ? 这仅仅是经验问题还是有其他帮助吗? 问题答案: 主要是根据经验。无论如何,例如: 而且golang.org网站还具有区分大小写的搜索功能。
这是如何我试图实现最接近的对algo在我的java代码,但似乎有错误的返回值 这是我的代码,请更正代码以便得到正确答案。