一个人开发的时候用 javascript 没什么问题,但是人多了之后(比如 4 到 5 个)不知道切换到 typescript 收益大不大?
各位有这种经验吗?
|      1ghostheaven      2017-07-08 20:12:45 +08:00 via Android 有了 babel 之后就没有动力搞 ts 了 | 
|  |      2ufo22940268 OP @ghostheaven 可能我没有描述清楚,我考虑的重点是类型检查,而不是 js 最新的语言特性 | 
|  |      3ETiV      2017-07-08 20:17:47 +08:00 via iPhone 别的不知道  但 webstorm 的提示是更准确了…… | 
|      4ghostheaven      2017-07-08 20:19:06 +08:00 via Android @ufo22940268 明白,静态类型好检查,不好写,瞎说的,我也没有经验。 | 
|  |      5xcatliu      2017-07-08 20:29:48 +08:00 via iPhone @ghostheaven ts 现在基本上不需要手动写类型,也可以自动推论出来类型了 | 
|  |      6murmur      2017-07-08 20:33:03 +08:00 js 那些最新的特性 你甚至在 npm 里找到更好的 比如支持嵌套覆盖的 object.assign | 
|  |      7janxin      2017-07-08 22:45:21 +08:00 via iPhone  1 后端项目有必要啊。动态一时爽,重构火葬场 | 
|  |      8learnshare      2017-07-08 22:46:04 +08:00 能上 TS 上 TS | 
|  |      9Ruiming      2017-07-08 22:47:04 +08:00 用了 ts 就再也不想写 js 了 | 
|  |      10doubleflower      2017-07-08 23:30:08 +08:00 via Android 我用的 flow,强烈推荐上。和 babel 和 atom 配合完美。 | 
|  |      11doubleflower      2017-07-08 23:33:28 +08:00 via Android 不过 flow 的文档很坑,很多用法我都是从 issue 列表和其他开源项目学来的,所以选 ts 也没错。 | 
|  |      12hronro      2017-07-08 23:55:53 +08:00 讲道理,用了 TypeScript 之后,你就回不去了 | 
|      13lkytal      2017-07-08 23:58:23 +08:00 TypeScript 可以考虑, flow 就算了 | 
|  |      14zhpech      2017-07-09 00:29:30 +08:00 via iPhone ts 很棒,写后端更带感 | 
|  |      15crysislinux      2017-07-09 01:28:04 +08:00 via Android 不知道你们遇到那种 typings 不兼容的情况咋办,现在很少有用 ts 写的后端用的库。经常库更新了 typings 有 bug,蛋疼的很啊 | 
|  |      17d4rkb1ue      2017-07-09 04:39:28 +08:00 `declare var require: any` | 
|  |      18Septembers      2017-07-09 05:48:11 +08:00 via iPad @ufo22940268 用 jsdoc 或者 d.ts 给 IDE 足够的 hint 也能达到效果 | 
|      19Cbdy      2017-07-09 09:18:30 +08:00 via Android 前后端都上 ts,开发体验大大提升 | 
|      20t123yh      2017-07-09 09:31:58 +08:00 via Android @ghostheaven 写起来肯定也更好写,我遇到过很多次,看着一个变量不知道里面有啥属性,如果有 Type 的话就不存在这个问题 | 
|  |      21iwege      2017-07-09 09:37:13 +08:00 ts 能上就上,别吝啬写 type 的时间。后端尤其需要... | 
|  |      22caiya21      2017-07-09 10:00:04 +08:00 请问你们写 koa 用 ts 啦?没有类型文件吧? | 
|  |      23williamx      2017-07-09 10:45:56 +08:00 看规模,规模越大,js 的噩梦就越深。 | 
|  |      24anubiskong      2017-07-09 10:46:07 +08:00 强类型无法减少 bug,单元测试和集成测试可以 如果是为了 IDE 智能提示,那就上 TS 吧 或者等 vscode 加强智能提示功能,他们已经有计划加强 d.ts 的跳转和提示了 | 
|  |      25liuxin5959      2017-07-09 11:06:22 +08:00 总感觉 TS 对后端意义不大,都想要类型检查了,为啥不直接用 Java 或 Go。在后端用 JS,最主要的目的不就是为了动态语言的灵活和快速开发吗? | 
|      26hantsy      2017-07-09 13:33:31 +08:00 typescript 好处: 1. OOP 概念,ES6/ES7 兼容,如果从 Java,C # 切换过来也不费力。 2. IDE 支持不是好一点点,开发效率大大提高。 坏处: 1. OOP 概念,如果传统的 ES 5 程序员(没多少 Class 概念)可能感觉不适应。 2. 学习曲线可大可少,因人而异,关键看是否愿意学习。 3. 有些程序员对任何新技术出来就是抵制情绪,深信自己写的 ES5 效率更高,嫌 TS 编译出来垃圾太多,看不起 TS,OOP 的人,我也见过。 | 
|      27hantsy      2017-07-09 13:36:12 +08:00 | 
|  |      28zhuangzhuang1988      2017-07-09 17:03:40 +08:00 用 | 
|  |      29j1wu      2017-07-09 17:17:59 +08:00 我最近的一个小项目( https://www.v2ex.com/t/374080 )就上了 flow,“投资回报比”还是挺不错的,整个过程没有耗费太多时间,之前担心没有 libdef 的第三方库怎么处理,结果 flow 现在能自动生成 libdef 的 stub。有了更好的 IDE ( vscode )提示,build 的时候也能多一层检查。同意 24 楼的说法,要健壮还是测试得跟上。 | 
|  |      30crysislinux      2017-07-09 17:20:33 +08:00 via Android @hantsy 现成的 type 经常有问题,没问题的都是原生的 ts,然而原生不多 | 
|      31hantsy      2017-07-09 17:39:55 +08:00 @crysislinux 有问题的应该少吧,不过我也遇到过。 有问题找官方去看一下 issues 中有没有方案,https://github.com/DefinitelyTyped/DefinitelyTyped, 很多时侯,你遇到也许别人也遇到 了,已经找了解决方案。 | 
|      32hantsy      2017-07-09 17:41:36 +08:00 @crysislinux 以后估计流行的 JS 包都会自己维护 d.ts 文件了,现在有些包已经是这样的。 | 
|  |      33crysislinux      2017-07-09 17:57:24 +08:00 via Android @hantsy 我前几天一个不大的项目转 ts 都遇到好几个这种问题。typings 和包分开维护根本不科学啊,经常导致要用最新包还要自己 patch 一下 typings。有些包里带了 d.ts ,但是有 bug 也是常有的事,最好的还是库本来就是 ts 写的,然后 d.ts 都是编译器生成的。 不过有问题的 typings 先卸载了,自己 declare 一下 module 先用着 any 等 patch 倒也可以。 | 
|  |      34rekey      2017-07-17 10:51:46 +08:00 用了 ts 就再也不想写 js 了 | 
|  |      35springwarm      2017-09-11 19:17:52 +08:00 静态类型检查显然还是能减少一些 bug 的,虽然单元测试和自动化测试也极有价值 说些 flow 的特点 (当前版本是 v0.54.1 ) - flow 的 typings (lib-def) 是根据库的版本号来匹配的(支持范围匹配) - flow (通过 flow-typed )可以自动分析项目依赖,自动生成所有依赖包的 typings。对于没不到 typings 的依赖包,会自动生成 stub - flow 可以只针对项目中的某些文件启用 type checking。比如只针对 data model 以及用到 data model 的文件启用 type checking flow 的不足 - 如 @doubleflower 所说,实际应用中,遇到有些 case 没有在文档中提及的情况,要通过 issues 来找答案,这和 @hantsy 说的用 ts 遇到 typings 的问题时的处理方法一样 - 现成的 typings 比 ts 的少很多。但是可以用 flow-gen 将 ts 的 typings 转译过来 flow 和 ts 在类型检查这一面上做比较,前者更看重,可以递进和选择性的应用到项目中 | 
|  |      36springwarm      2017-09-11 19:21:49 +08:00 Vue 2.0 为什么选用 Flow 进行静态代码检查而不是直接使用 TypeScript ?  https://www.zhihu.com/question/46397274 |