
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) { ... } |