Repository files navigation 使用 Typescript 重写 common.js
MediaWiki 会自动压缩 common.js,但是压缩工具不兼容 EMCAScript2016(俗称 ES6)语法。
因此任何使用 ES6 及之后的新特性编写的代码,最终都要改写成难看的 ES5 语法代码。
同时 MediaWiki 不会在提交编辑的时候告诉你,哪里不符合,只能自己去看报错,一遍一遍改。
Typescript 可以将 TS 代码自动编译 成 ES5 语法的 JS 代码,你可以放心大胆地使用新特性。
比如使用.?可选链、??空值合并符,而不是写好几行自己都看不清的判断式。
编译得到的代码可以通过 MediaWiki 压缩器的校验,不用担心这些问题。
Typescript 在 JavaScript 的基础上添加了类型校验,可以检查出很多隐藏问题。
根据 MDN 的数据,现有网页上的大部分 JS 错误来源于类型错误。
编译 TS 需要安装 NodeJS、Typescript。
TS 无法将Promise、function*、Intl等特性编译为 ES5 代码,因为 ES5 中没有实现这些功能的方法。
大部分可以正常编译,比如代码里面的let、const都会编译成var,for(of)会编译成原始的for(;;)。
TS 编译出来的文件会添加Polyfill(可以理解为代码特性补全),因此编译后的代码并不好看。
TS 无法校验所有的类型错误,只能发现绝大部分。
不能像以往那样修改 JS,想到哪写到哪,需要打开集成开发环境修改仓库中的代码并同步。
让 MediaWiki 加紧开发支持 ES6 语法的 JS 压缩器。
继续使用 ES5 规范的 JS 代码编写脚本。
下载仓库的主支(git clone)
打开 IDE,修改代码
提交到仓库(git add、git commit、git push)的新分支
提交 PR(git merge)
不推荐 :如果改动很少而且你觉得不会导致合并问题,你可以直接提交到主支。
About
用TS重写Wiki的common.js及其连带的JS
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.