一个人开发的时候用 javascript 没什么问题,但是人多了之后(比如 4 到 5 个)不知道切换到 typescript 收益大不大?
各位有这种经验吗?
一个人开发的时候用 javascript 没什么问题,但是人多了之后(比如 4 到 5 个)不知道切换到 typescript 收益大不大?
各位有这种经验吗?
|
ghostheavenJul 8, 2017 via Android
1
有了 babel 之后就没有动力搞 ts 了
|
|
2
@ghostheaven 可能我没有描述清楚,我考虑的重点是类型检查,而不是 js 最新的语言特性
|
|
ETiVJul 8, 2017 via iPhone
3
别的不知道
但 webstorm 的提示是更准确了…… |
|
ghostheavenJul 8, 2017 via Android
4
@ufo22940268 明白,静态类型好检查,不好写,瞎说的,我也没有经验。
|
|
xcatliuJul 8, 2017 via iPhone
5
@ghostheaven ts 现在基本上不需要手动写类型,也可以自动推论出来类型了
|
|
murmurJul 8, 2017
6
js 那些最新的特性 你甚至在 npm 里找到更好的 比如支持嵌套覆盖的 object.assign
|
|
7
后端项目有必要啊。动态一时爽,重构火葬场
|
|
learnshareJul 8, 2017
8
能上 TS 上 TS
|
|
RuimingJul 8, 2017
9
用了 ts 就再也不想写 js 了
|
|
doubleflowerJul 8, 2017 via Android
10
我用的 flow,强烈推荐上。和 babel 和 atom 配合完美。
|
|
doubleflowerJul 8, 2017 via Android
11
不过 flow 的文档很坑,很多用法我都是从 issue 列表和其他开源项目学来的,所以选 ts 也没错。
|
|
hronroJul 8, 2017
12
讲道理,用了 TypeScript 之后,你就回不去了
|
|
lkytalJul 8, 2017
13
TypeScript 可以考虑, flow 就算了
|
|
zhpechJul 9, 2017 via iPhone
14
ts 很棒,写后端更带感
|
|
crysislinuxJul 9, 2017 via Android
15
不知道你们遇到那种 typings 不兼容的情况咋办,现在很少有用 ts 写的后端用的库。经常库更新了 typings 有 bug,蛋疼的很啊
|
|
d4rkb1ueJul 9, 2017
17
`declare var require: any`
|
|
SeptembersJul 9, 2017 via iPad
18
@ufo22940268 用 jsdoc 或者 d.ts 给 IDE 足够的 hint 也能达到效果
|
|
CbdyJul 9, 2017 via Android
19
前后端都上 ts,开发体验大大提升
|
|
t123yhJul 9, 2017 via Android
20
@ghostheaven 写起来肯定也更好写,我遇到过很多次,看着一个变量不知道里面有啥属性,如果有 Type 的话就不存在这个问题
|
|
iwegeJul 9, 2017
21
ts 能上就上,别吝啬写 type 的时间。后端尤其需要...
|
|
caiya21Jul 9, 2017
22
请问你们写 koa 用 ts 啦?没有类型文件吧?
|
|
williamxJul 9, 2017
23
看规模,规模越大,js 的噩梦就越深。
|
|
anubiskongJul 9, 2017
24
强类型无法减少 bug,单元测试和集成测试可以
如果是为了 IDE 智能提示,那就上 TS 吧 或者等 vscode 加强智能提示功能,他们已经有计划加强 d.ts 的跳转和提示了 |
|
liuxin5959Jul 9, 2017
25
总感觉 TS 对后端意义不大,都想要类型检查了,为啥不直接用 Java 或 Go。在后端用 JS,最主要的目的不就是为了动态语言的灵活和快速开发吗?
|
|
hantsyJul 9, 2017
26
typescript 好处:
1. OOP 概念,ES6/ES7 兼容,如果从 Java,C # 切换过来也不费力。 2. IDE 支持不是好一点点,开发效率大大提高。 坏处: 1. OOP 概念,如果传统的 ES 5 程序员(没多少 Class 概念)可能感觉不适应。 2. 学习曲线可大可少,因人而异,关键看是否愿意学习。 3. 有些程序员对任何新技术出来就是抵制情绪,深信自己写的 ES5 效率更高,嫌 TS 编译出来垃圾太多,看不起 TS,OOP 的人,我也见过。 |
|
hantsyJul 9, 2017
27
|
|
zhuangzhuang1988Jul 9, 2017
28
用
|
|
j1wuJul 9, 2017
29
我最近的一个小项目( https://www.v2ex.com/t/374080 )就上了 flow,“投资回报比”还是挺不错的,整个过程没有耗费太多时间,之前担心没有 libdef 的第三方库怎么处理,结果 flow 现在能自动生成 libdef 的 stub。有了更好的 IDE ( vscode )提示,build 的时候也能多一层检查。同意 24 楼的说法,要健壮还是测试得跟上。
|
|
crysislinuxJul 9, 2017 via Android
30
@hantsy 现成的 type 经常有问题,没问题的都是原生的 ts,然而原生不多
|
|
hantsyJul 9, 2017
31
@crysislinux 有问题的应该少吧,不过我也遇到过。
有问题找官方去看一下 issues 中有没有方案,https://github.com/DefinitelyTyped/DefinitelyTyped, 很多时侯,你遇到也许别人也遇到 了,已经找了解决方案。 |
|
hantsyJul 9, 2017
32
@crysislinux 以后估计流行的 JS 包都会自己维护 d.ts 文件了,现在有些包已经是这样的。
|
|
crysislinuxJul 9, 2017 via Android
33
@hantsy 我前几天一个不大的项目转 ts 都遇到好几个这种问题。typings 和包分开维护根本不科学啊,经常导致要用最新包还要自己 patch 一下 typings。有些包里带了 d.ts ,但是有 bug 也是常有的事,最好的还是库本来就是 ts 写的,然后 d.ts 都是编译器生成的。
不过有问题的 typings 先卸载了,自己 declare 一下 module 先用着 any 等 patch 倒也可以。 |
|
rekeyJul 17, 2017
34
用了 ts 就再也不想写 js 了
|
|
springwarmSep 11, 2017
35
静态类型检查显然还是能减少一些 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 在类型检查这一面上做比较,前者更看重,可以递进和选择性的应用到项目中 |
|
springwarmSep 11, 2017
36
Vue 2.0 为什么选用 Flow 进行静态代码检查而不是直接使用 TypeScript ?
https://www.zhihu.com/question/46397274 |