比如: let name = 'v2ex';
还需要写出这样吗:let name:String = 'v2ex';
我总担心代码量稍大的时候,标示不清楚,别人看起来费劲,但是按第二种写法会不会太啰嗦了,不够简洁?
1
mooncakejs 2019-05-28 22:03:00 +08:00 via iPhone
不需要
|
2
mooncakejs 2019-05-28 22:04:06 +08:00 via iPhone
有时候需要,变量复杂一点 let a = “ sss ” 不能给 "sss"类型
|
3
q8164305 2019-05-28 22:04:09 +08:00 via Android
不需要的,自己试一下不就知道了
|
5
WittBulter 2019-05-28 22:14:20 +08:00
建议写类型的:除了基础类型以外的类型,如联合类型、字面量类型、构造体之类。
不过 tslint 和 eslint 都支持指定成员属性和变量是否需要强加类型,不管什么风格只要加了 Lint 能够完全符合 Lint 都是整洁的代码。 TS 在类型系统上非常的智能,有类似于 Result / typeof / keyof 之类的东西,不强制写类型问题也不是很大。 |
6
gzf6 OP @WittBulter 受教了
|
7
learnshare 2019-05-28 22:18:53 +08:00
最好写明,读起来更清晰
|
8
CodingNaux 2019-05-29 08:40:34 +08:00 via iPhone
能类型推导的就不写呗。没 type 提示的就写呗
|
9
aleen42 2019-05-29 09:24:33 +08:00
就相当于文档一样,不能嫌啰嗦
|
10
buhi 2019-05-29 11:21:46 +08:00
有的时候需要(能推导出来就不需要) 有的时候不需要(不能推导出来)
比如 type Kind = "A"|"B" let a1 = "A" let a2:Kind = "B" a2 = a1 //这里就会报错, a1 是 string, a2 是 Kind, Kind 的取值范围比 string 小, 所以 string 不能赋值给 Kind //解决办法就是显式声明 a1 是 Kind |