1
leishi1313 2019-06-22 07:23:26 +08:00 via Android
eslint ?虽然不知道有没有这条,实在不行 presubmit 写个正则匹配下
|
2
olantes 2019-06-22 08:26:34 +08:00 via Android
重重地给自己的脑袋来几下,几次之后就记住了
|
3
runze 2019-06-22 08:27:37 +08:00 via Android
只要声明了返回值类型就会报错
|
4
loading 2019-06-22 08:29:07 +08:00
编辑器自动补全没提示吗?
|
5
heimeil 2019-06-22 08:55:42 +08:00
if (returnFalse() === true) { }
作为参数传递的时候写清楚类型声明就传不了了,直接报错就不会忘了 |
6
marcong95 2019-06-22 09:33:36 +08:00
TS 还有这个问题? returnFalse 明明是个 Function 又不是 Boolean,你往不该放 Function 的地方写了 returnFalse,tsc 不报错吗?
|
7
momocraft 2019-06-22 10:42:34 +08:00
不知如何在语法层解决,如果用 lint 强制 if (boolean) 好像又太超过了
写测试...吧 |
8
secondwtq 2019-06-22 12:06:11 +08:00 via iPad
划重点:TypeScript
既然是 TypeScript,那么就通过编译器 hack 或者 lint 之类的静态分析方式,把 “ if (Function)”, “ Function == Boolean ”, :“ Function;” 这种构造给禁掉就行 当然,“ Function? == Boolean ” 这种还是要留着的 |
9
love 2019-06-22 12:43:18 +08:00
这种类型系统没办法,我也碰到过坑,比如写 hooks:
const isStarted = useRef(false) if (isStarted) { ... } // FUCK 应该 if (isStarted.current) { ... } |