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