一个波浪线在那 看着好难受
1
maocat 2020-12-04 09:07:38 +08:00
动态语言写习惯就好
|
3
zachlhb 2020-12-04 09:21:37 +08:00 via Android
@zxCoder 动态添加的属性啥 ide 都分析不出来,因为 ide 不会自己去跑你的程序,程序都没跑,当然扫描不出来你的属性
|
4
BingoXuan 2020-12-04 09:24:27 +08:00
所以 typescript 真的是個好發明
|
7
noe132 2020-12-04 09:39:43 +08:00 via Android
const p = confirm()
if (p) obj[p] = 1 你来分析分析 obj 对象有啥属性 |
8
rbe 2020-12-04 09:40:32 +08:00
|
9
BingoXuan 2020-12-04 09:47:28 +08:00
@zxCoder
ts 其實就是給動態語言加上靜態分析,讓你能在編寫程序時候做好一定約束,不容易出 bug 。這也就是為什麼我認為 python3.7 才是真正的 python3,因為有提供 typing hint 來做靜態分析。 |
10
johnnyNg 2020-12-04 10:11:31 +08:00
上 ts
|
11
Immortal 2020-12-04 10:13:05 +08:00
ts ts ts
|
12
libook 2020-12-04 10:44:23 +08:00
为了提升代码可读性,也为了让 IDE 更准确识别对象结构,可以考虑把动态添加的属性做成确定性的,比如声明的时候就包含这个字段。
用注释写好 JSDoc 、ESDoc,把具备哪些属性写清楚。 或者使用 TS 的*.d.ts 文件( JS 项目也可以用),和上面方法一样都是让 IDE 知道对象有哪些属性。 如果是公共库的话,可以在 Preferences =》 Languages & Frameworks =》 JavaScript =》 Libraries 里添加相应库的声明文件,实际上和用 TS 的*.d.ts 是等价的。很多人用 idea 一开始写项目连 Node 内置 API 都会有波浪线( WebStorm 可能不会有这个情况),需要在 Preferences =》 Languages & Frameworks =》 Node.js and NPM 里勾选 Coding assistance for Node.js 。 |