我们的项目中有很多配置文件比如说tsconfig.json,就是关于typescript的配置,之前我都是机械性的复制粘贴已经配置好的项目的配置文件,今天我们不谈论别的,就单纯的看一下这个eslint到底是个啥?

假设我们有一个这样的配置文件

npm i typescript 之后,可以使用tsc --init 初始化tsconfig.json

{
	"compilerOptions": {
		"target": "ESNext",
		"useDefineForClassFields": true,
		"module": "ESNext",
		"moduleResolution": "Node",
		"strict": true,
		"jsx": "preserve",
		"sourceMap": true,
		"resolveJsonModule": true,
		"isolatedModules": true,
		"esModuleInterop": true,
		"lib": ["ESNext", "DOM"],
		"skipLibCheck": true,
		"baseUrl": "",
		"paths": {
			"@/*": ["./src/*"]
		},
		"types": ["vite/client", "vite-plugin-svg-icons/client", "node", "jest"]
	},
	"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "__tests__/unit/*.ts"],
	"references": [{ "path": "./tsconfig.node.json" }]
}

其中target: ESNext,module: ESNext

好多地方有ESNext,那么他到底是啥,以前我一直以为是es6就叫做ESNext,但是其实不然,我们看一下vscode的提示

ESNext不是ES6,但是肯定包含ES6

ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。 它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言 。

ESNext 是一个动态的概念,指的是 ECMAScript 的下一个版本。就是将来即将发布的,尚未正式确定的 ECMAScript 版本,可能包含了新的语言特性,语法,API等。所以我们在配置中写ESNext肯定是包含ES6的语法,因为ES6早就发布了。开发者使用 ESNext 来指代当前和未来 ECMAScript 版本的集合

Shen Lu's Blog使用 TypeScript 开发项目的过程中,经常需要使用 tsc 命令将 TS 代码编译成特定版本的 ECMAScript,在tsconfig.json配置文件中有一个 target 字段,决定编译后输出的 ECMAScript 版本,默认输出 ES3。target字段有多个值可以选择,有一个名为 ESNext 的值。网上搜了一些对这个词的具体含义,我认为比较可靠的说法是这样的。icon-default.png?t=N7T8https://shenlu.me/2021/10/26/what-is-esnext.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐