harttle / contest.js

Ready for contest use! Data structures and algorithms in pure JavaScript with zero dependency.
http://harttle.land/contest.js/
MIT License
41 stars 9 forks source link

将所有算法迁移到 TypeScript #8

Closed upupming closed 3 years ago

upupming commented 3 years ago

感谢大佬的模板,以后用 JS 写算法都不怕了😄(大佬代码写的很好,学到很多呀~),我个人平时习惯了使用 TypeScript,所以尝试将您的代码迁移到了 TypeScript。现在也发了一个包 https://www.npmjs.com/package/contest.ts 。不知大佬希不希望 Merge 过来一同维护?我提一个 PR,大佬想一起维护的话可以 Merge 呀!

harttle commented 3 years ago

感谢你的工作!

  1. 这个contest.ts和contest.js的区别是前者可以有开发时有类型信息对吧。这个开发时辅助合到contest.js里也挺好的!
  2. 另外这个仓库的一个功能是,可以直接拷贝代码去用。所以很多用js比赛的同学可能也希望拷贝js过去。我的建议是,合到一起,用ts生成js(我们要确保得到的js仍然是清晰的才好用)。然后文档中提供 [JavaScript Source], [TypeScript Source]俩链接。
upupming commented 3 years ago

@harttle 感谢鼓励!

  1. 嗯嗯,我们只是在原来的基础上提供了类型信息。使得可以直接使用 TypeScript 写竞赛代码,即使是使用 JavaScript,也可以通过编译生成的 .d.ts 文件获得类型提示,如下所示:

image

  1. 用 TS 生成的 JS 还能够保持原有的代码结构的,看上去还是比较清晰的(只多了少许的 __esModule 之类的冗余代码,不影响 copy paste):

image

  1. 我们可以把 TS 链接到源代码,由于 JS 是编译生成的,并没有 commit 到代码里面,我么可以把 JS 链接到 npm 包上,例如:https://cdn.jsdelivr.net/npm/contest.ts@1.0.1/lib/algorithm.js

接下来,我可以先把 [JavaScript Source], [TypeScript Source] 修改成预期的链接!

upupming commented 3 years ago

@harttle 我已经把 [JavaScript Source], [TypeScript Source] 修改成了预期的链接,JS 用的是 JsDelivr 的链接,现在 merge 之后,contest.js 发一个新的 npm 包,应该就可以打开了~

github-actions[bot] commented 3 years ago

:tada: This PR is included in version 1.1.0 :tada:

The release is available on:

Your semantic-release bot :package::rocket: