现在前端都要求用 Typescript 开发?会的人多吗?举个手聊聊呗~

2021-03-11 15:16:21 +08:00
 JosieZhao
8302 次点击
所在节点    TypeScript
78 条回复
jymsy
2021-03-12 11:24:36 +08:00
ts 用两年了都
Rsl
2021-03-12 11:51:07 +08:00
最近一两个月开始在新项目里尝试学习使用, 上手之后有爽到, 强烈推荐.
ArrayBuffer
2021-03-12 12:00:25 +08:00
旧项目可以启用 `allowJS` 的, 在此基础上新功能可以用 `TypeScript`, 旧功能可以不用动; 新项目当然要直接上 `TypeScript` 的
namelosw
2021-03-12 12:32:07 +08:00
TS 基本是带 Gradual typing 且比较类型系统比较高级的主流代表了, 非主流代表是 Typed Racket.
不是 Gradual 的主流代表是 Scala, 非主流代表是 Haskell.

用起来比较有意思, 而且补全比较好其实用好了写起来很快. 但是坑的确多, 总的来说 TS 打开了走向了 dependent typed 的魔盒, 但又没有 dependent type, 所以很多时候会撞空气墙.

TS 有三种代码风格, 或者是这三种的混合:

1: 基本就是 JS, 全靠推导, 偶尔加 any.
2: 基本就是 Java, 类型系统按最简单的用, 代码本身像 Java 有点啰嗦.
3: 代码风格像 JS, 但是带签名. 因为代码很灵活, 所以签名非常鬼畜, 其实随便打开一个库就会发现里面整页都是签名.

不过还是比较建议用的, 大家统一了整个代码库 123 偏向哪种就好.
vvmap
2021-03-12 12:55:53 +08:00
写了 ts+react,再回来看以前 js+vue 。 ??? 这代码???有没有跟我一样的感受
jsjgjbzhang
2021-03-12 13:23:02 +08:00
主流的游戏引擎已经强制使用 TS 了
wangboyang
2021-03-12 14:01:31 +08:00
日常工作的话我觉得用不用大部分情况主要看上面给的时间和对于某个项目的代码质量关注程度,上面给你说今天下班前搞个项目出来哪还有心情搞什么类型声明,上面急着给 xx 总去报告,谁管你代码怎么写的,js 索嗨就完了,根据经验这种情况下就算强上 ts 大部分团队下面开发的时候为了赶工都是各种 any,看着贼恶心还不如不用;假如项目话事人只关心业务产出不关心代码的话,ts 也挺难推的;假如话事人是技术出身并且很关注代码质量,评估各方面工时的时候自然会以 ts 的标准去衡量
HanMeiM
2021-03-12 14:39:36 +08:00
后端表示 ts 真的很舒服,都要有强迫症了,不知道这个变量里面是什么东西就很发慌。
jones2000
2021-03-12 16:54:05 +08:00
@newmlp 指针有很多种, 不同类型的指针是不能赋值的, 除非你强制转换指针类型赋值.
bzw875
2021-03-12 17:07:06 +08:00
要求用 TS,挺喜欢用的,但是奈何不了没有追求的人写一大堆的 any
sewer
2021-03-12 18:22:37 +08:00
@jones2000 用有声明的库有提示 然后自己全用 any 狗头
jones2000
2021-03-12 22:14:03 +08:00
@sewer 你这个 c++版本有要求的吧, 老点的 c++98 根本就不支持。
shroxd
2021-03-12 23:44:42 +08:00
写库的时候只用 ts 。最初其实还是有点偏见的,后来读了 vue 的源码,才发现 ts 原来这么优雅,马上就真香了
xumng123
2021-03-13 10:10:45 +08:00
啥热搞啥,没有必要。
hooks
2021-03-13 13:47:02 +08:00
TS 一开始用感觉很麻烦,后面就真香了
AndyAO
2021-03-20 12:31:01 +08:00
TypeScript 是大势所趋,因为随着代码库的庞大和复杂,类型变得越来越重要。

从 StackOverFlow 2020 年度的统计数据来看,TypeScript 在程序员中的受欢迎程度已经超过 Python,位居第 2 位。[^1]

越来越多的项目都推荐使用 TypeScript 。

[^1]:https://stackoverflow.blog/2020/05/27/2020-stack-overflow-developer-survey-results/
emilll
2021-04-15 01:49:59 +08:00
@vvmap 一样的感受!我是 vue3+ts,再也回不去了!!!
fox2081
2021-04-22 10:04:49 +08:00
@Jinnn 可以提供,我们就是这么干的,去年秋季缠着我们后端让他们给我生成 dts,我给他们说转换规则,但转换起来多多少少都有些问题,后面又改成了让他们把枚举、类型、接口路由、参数类型、返回类型都提取到一个 json 中返回,我这边又使用模版生成 dts 和对应的 ts 源码(源码只是枚举部分),接口使用代理实现,使用类似 ApiXxx.get['cmd'](params: P).then((res: T) => {})。

现在项目已经有 1w8+行的 dts 了,500+个接口,打包之后整个包也就 15k,里面有 13k 主要是枚举定义,使用起来效率直接起飞,传入参数、返回值、枚举定义都不用自己搞,注释也附带了后端写的,原本的 Api 文档升级计划都搁置了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/760708

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX