作为 Javaer, Typescript 这个特性太舒服了

2022-01-24 10:38:58 +08:00
 micean

可以直接在函数上声明入参和返回值的类型

function foo(bar: { id: number, name?: string }): { xx: string, oo: string }[]

去他大爷的什么 PO 、VO 、DTO 、XXOO ,还完美解决了起名这个世界难题

3322 次点击
所在节点    程序员
11 条回复
CodeCodeStudy
2022-01-24 10:44:02 +08:00
不一样,Java 是要先定义一个类才能使用该类的实例化对象,而 TypeScript 是 JavaScript 的超集,js 的类就是一个 {} 包起来的东东
makelove
2022-01-24 10:44:32 +08:00
这和 xxO 什么关系吗?
另外建议这种复杂类型直接独立出来写成 xxO,也好在别的地方用
micean
2022-01-24 10:50:10 +08:00
@makelove

复用很容易产生 NPE 的问题,因为不一定每个使用者都有完全相同的需求
如果像 kotlin 那样定义好非空,遇上同一个属性有非空、可空的不同需求,又要创建多个类,太麻烦了
bnm965321
2022-01-24 10:59:26 +08:00
因为是结构化类型,所以可以使用匿名的 interface 。

rescript / ocaml 的类型更牛皮,可以根据你对参数的时候来推导类型。写 rescript 之后很少主动标注类型。
IvanLi127
2022-01-24 12:50:13 +08:00
要我写还是会在独立的文件里定义好了再拿出来用。你这样不太方便比较大范围的重构。
qinxi
2022-01-24 13:03:14 +08:00
带 key 自动提示的 增强型 map 😂
Leviathann
2022-01-24 14:15:16 +08:00
我一般还是会用 type 写一下
除非就两个字段
micean
2022-01-24 14:27:53 +08:00
@IvanLi127

大范围重构确实是很麻烦,但是也比较少吧,那时候要改的也不仅仅是一个参数了


@Leviathann

我主要在接口上这么写,连接口文档都懒得写了,直接写在前端的参数上
monkeyWie
2022-01-24 15:54:08 +08:00
确实挺爽的,希望 jdk 跟进下啊,搞个语法糖就行了
4196
2022-01-25 11:04:07 +08:00
TS 的类型系统可是业界领头的🤭
wisetc
2022-10-16 23:09:27 +08:00
我也发现了同样的问题,ts 确确实实值得学习应用。

ts 是和 c# 是一脉的,而且兼容 js 和 esnext ,可谓静态类型和动态类型集大成者。这里有一本介绍 ts 深入技术的书籍,由貌似印度人的技术大佬所著,不妨学习一下。书籍本身是开源的,这里帮他推广一下,不过是英文的,而且不免费,权当是码字需要耗费的电费了,里面知识却是货真价实,看完至少让人对 ts 认知提升 2 个档次。下链

https://www.uqugu.com/discover/book/1bn9qe1fdktl96u83k0/?utm_source=v2ex

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

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

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

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

© 2021 V2EX