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