一个后端 Java 仔对 TS 的复杂感受

2023-06-15 15:10:43 +08:00
 lbllol365

我是个后端 Java 仔,工作除了写 Java 外,还要写一些比较简单的 Vue2 ,用的 JS 。除了 Java 和 JS ,自己平时也写点 Python 和 Go 。我写 JS 和 Python 最不爽的地方是因为是动态类型语言,IDE 提示比较差(我用的正版 Jetbrains 系 IDE ,所以一直更的最新版,效果也很差),我写一个函数,参数和返回值类型都不知道是啥,习惯了强类型就很难受,这个我感觉在用各种 Python 第三方库处理数据时更明显,各个库的类型还不兼容,就报错。

说回 TS 和 JS 。工作用 JS ,硬糊完成任务也就算了。业余写代码可得提高标准,就寻思用 TS“雅一雅”。上 Vue3 、TS 。Github 上翻人家的 TS 代码,感慨:好“雅”。等自己写起来,发现“雅”不动了。到处的 @ts-ignore ,再就是 IDE 波浪线提示,狂按 Alt+Enter 自动修改之后,卧槽?这改出个什么东西。我觉得造成这种情况,一是自己确实不是专业前端,水平不够,JS 也就个半吊子。二是可能我用 TS 上来就追求“雅”到极致,上泛型,上接口,类型体操,结果水太深,把握不住......

7649 次点击
所在节点    程序员
56 条回复
Masoud2023
2023-06-16 09:39:55 +08:00
还有 @SuppressWarnings("rawtypes")
bojackhorseman
2023-06-16 10:01:35 +08:00
@wu67
const myCanvas = document.createElement('canvas')!
const ctx = myCanvas.getContext('2d')!

活用非空断言,前提是你确定结果真的不会是 null
uni
2023-06-16 10:12:58 +08:00
哈哈哈,说一个另类的道路,去尝试一下纯函数式编程( Haskell 那种),然后写业务的时候思考下用函数式会怎么写,这样多思考会对类型系统的理解更深刻些(什么代数数据类型之类的写着写着就很自然了,不然很多东西只是流于表面不知道怎么去思考这个问题自然地得到正确的结果
t783072156
2023-06-16 10:19:14 +08:00
ts 还能比 java 的类型复杂。。真的假的
lbllol365
2023-06-16 10:30:51 +08:00
@uni 去年看《七周七并发模型》这本书,讲到 Erlang 的 Actor 模式,看得我热血沸腾,”这我不分分钟手搓一个 RabbitMQ“🐶。然后配好了 Elixir 环境,找了书教程开始看,一上手写人傻了,我是菜鸡。后面还折腾过 Clojure ,但是都因为学习的优先级太低最后不了了之了,不过还是很想好好看看 Erlang 和 Clojure 这种函数式语言的,有空再说吧。
Leviathann
2023-06-16 10:32:04 +08:00
@t783072156 typescript 可以用类型系统本身写 lisp 解释器
MEIerer
2023-06-16 11:00:47 +08:00
ts 为了兼容 js 的动态性,肯定复杂
vone
2023-06-16 11:42:15 +08:00
你太客气了,TypeScript 用到业务代码里就是狗屎。
wowawesome
2023-06-16 14:14:15 +08:00
还是 js 吧,有一个能跑就行
yueye115
2023-06-16 15:17:44 +08:00
哈哈, 专门写动态语言的, 表示 ts 很难受, 时间基本都花在定义类型上. 不过定义完了, 写的还是很爽
Terry05
2023-06-16 15:48:42 +08:00
雅到极致不风流,还是脱了裤子唱昆曲吧
Ficelle
2023-06-16 16:00:58 +08:00
弱类型就这个样子。
HaroldFinchNYC
2023-06-16 23:59:56 +08:00
说明你用的 vue3 不行
这事不赖 tyepescript
pkupyx
2023-06-17 02:27:30 +08:00
tsconfig strict=false
lizy0329
111 天前
@wu67 有些低版本浏览器不支持 Context2D ,Typescript 为了你写出的代码能够强壮点,也是费尽心思啊
lizy0329
111 天前
@vone 怎么可能,现在基本是个项目都会用 Ts 限制

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

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

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

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

© 2021 V2EX