我个人觉得三目还可以,但前提是格式化必须严格做到
xxxx
? aaaa
: bbbb
这种格式,这样的话两三层以内都完全不会有歧义,各个分支都看得比较清楚
但是第一次看到包含各种奇奇怪怪格式的三目的类型声明的时候还是不免骂一句,这写的什么寄吧
我个人觉得三目还可以,但前提是格式化必须严格做到
xxxx
? aaaa
: bbbb
这种格式,这样的话两三层以内都完全不会有歧义,各个分支都看得比较清楚
但是第一次看到包含各种奇奇怪怪格式的三目的类型声明的时候还是不免骂一句,这写的什么寄吧
|
WuSiYuApr 29, 2022 via iPhone
1
三目套三目写复杂逻辑的一律认为有大病
(除非是 verilog ,doge ) |
|
2
@WuSiYu 三目是 typescript 类型语言的核心语法 🐶
|
|
yuzo555Apr 29, 2022
3
只要加了括号,编辑器能主动高亮匹配的括号,我没什么意见。
|
|
liuidetmksApr 29, 2022 via iPhone
4
if a return a
else return b 你不觉得麻烦? 还有,不是一些框架 只能接受 表达式吗 ,vue 里面 |
|
golangLoverApr 29, 2022 via Android
5
typescript 的程序员写代码都有临深为高的感觉
|
|
LighferApr 29, 2022
6
@liuidetmks return a || b
|
|
djsApr 29, 2022 via iPhone
7
最近参考人家的写了个类型生命,长见识了…
|
|
ion1zeApr 29, 2022
8
const {name} = this.options || {};
|
|
superfatboyApr 29, 2022
9
天天写 ts ,天天用三母,爽的一批,开始学 go 了,发现没三目,很难受
|
|
ZE3krApr 29, 2022 via iPhone
10
is_a ? b : is_c ? d : is _e ? f : g
完美 |
|
nothingistrueApr 29, 2022
11
Java 里面,三目运算符不是用来赋值的,或者赋值加三目表达式加起来超过一行或换行,是要被打死的。
三目运算符当逻辑操作,还有逻辑运算符里面参杂赋值操作( a is not null && a=2 这种),在脚本语言,还有追求最少操作(并忽略可读性)的算法里面,用得还是很多的。但我不相信 typescript 会把这当核心用法。 |
|
CodeCodeStudyApr 29, 2022
12
TypeScript 本来就不是一门独立的语言,TypeScript 的三目就是 JavaScript 的三目
|
|
sunhelterApr 29, 2022
13
var a = b switch { 1="A",2="B",_="" };
完美 |
|
14
只是 ts 类型声明也只能用三目了吧,上面的朋友没理解这是啥玩意,贴个膈应人的
```typescript type IsEqual<A, B> = (<T>() => T extends A ? 1 : 2) extends <T1>() => T1 extends B ? 1 : 2 ? true : false ``` |
|
irisdevApr 29, 2022
15
楼主说的是这种
race<T>(values: readonly T[]): Promise<T extends PromiseLike<infer U> ? U : T>; |
|
marcong95Apr 29, 2022
16
那你对于那种 xxx ? 1 : 0 这种你也要拆 3 行写吗?
|
|
statumerApr 29, 2022 via iPhone
17
那你去给 Typescript 贡献个 constexpr 吧。
类型声明这样的 DSL 不用函数式类型体操还想怎样 |
|
libookApr 29, 2022
18
代码风格限定协作群体就好了,没必要要求全网所有人按照统一风格来写,否则不如换其他本身格式要求高的语言。
每个团队的人员习惯和水平不一样,需要团队内部对代码风格达成一致,然后以制度和 Lint 规则的形式来约束,确保大家高效协作就好。 |
|
AyaseEriApr 29, 2022
19
type Foo<T> = T extends Foo ? T extends Bar ? Omit<T, "options"> : Partial<T> : T
|
|
learningmanApr 29, 2022
20
ts 的类型声明说不定是编译出来的,给 language-server 看的。。。
|
|
ccraohngApr 29, 2022
21
ts 是越智能越复杂
可以看 stitches 的类型。。 |
|
KMpAn8Obw1QhPoEPApr 29, 2022 via Android
22
没办法啊 类型操作里只能用表达式 表达式里用来表示 if else 的就是三目运算 别说 if else 了 连逻辑运算都没有 就只能一层一层套
|
|
hujun528Apr 29, 2022
23
@superfatboy 用泛型 自己写个三目 方法
|
|
aguesukaApr 29, 2022
24
这不是三目运算, 这是 Conditional Types
|
|
wolfieApr 29, 2022
25
没三目,代码会丑好多。
|
|
zooeymangoApr 29, 2022
26
哈哈哈, 有时候写 ts 冒号问号最后写的我自己都晕了
|
|
chenmobuysApr 29, 2022
27
js 本来就乱,ts 还要兼容 js ,又要开发一套新的语法,乱上加乱。java 的类型更清晰一点。
|
|
stimwApr 29, 2022
28
要这样说 pythonic 其实也有很多奇怪(抄近路)的写法,第一眼还看不懂。
同理 c++ |
|
mosadeApr 30, 2022
29
众所周知,TypeScript 拥有一个图灵完备的类型系统[手动狗头]
https://github.com/type-challenges/type-challenges/blob/main/questions/08804-hard-two-sum/README.md |