跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • webstorm 写 nodejs,对象动态添加的的属性没有提示和自动补全怎么办
未分類
19 11 月 2020

webstorm 写 nodejs,对象动态添加的的属性没有提示和自动补全怎么办

webstorm 写 nodejs,对象动态添加的的属性没有提示和自动补全怎么办

資深大佬 : zxCoder 3

一个波浪线在那 看着好难受

大佬有話說 (13)

  • 資深大佬 : maocat

    动态语言写习惯就好

  • 主 資深大佬 : zxCoder

    @maocat 啊这 这么惨的吗 现在的 ide 不是挺智能的

  • 資深大佬 : zachlhb

    @zxCoder 动态添加的属性啥 ide 都分析不出来,因为 ide 不会自己去跑你的程序,程序都没跑,当然扫描不出来你的属性

  • 資深大佬 : BingoXuan

    所以 typescript 真的是個好發明

  • 主 資深大佬 : zxCoder

    @zachlhb 没有相关工具可以实时扫描源码,比如看这个对象在哪绑定了哪些新的属性吗

  • 主 資深大佬 : zxCoder

    @BingoXuan ts 能解决这个问题吗?好奇

  • 資深大佬 : noe132

    const p = confirm()
    if (p) obj[p] = 1

    你来分析分析 obj 对象有啥属性

  • 資深大佬 : rbe

    @zxCoder #6 ts 写了类型声明,或者从上下文能推断出类型时,就可以提示。ts 对 jsdoc 支持也很好,在 vscode 里写 js + @type 声明为 ts 类型的 jsdoc,也能做到属性提示

  • 資深大佬 : BingoXuan

    @zxCoder
    ts 其實就是給動態語言加上靜態分析,讓你能在編寫程序時候做好一定約束,不容易出 bug 。這也就是為什麼我認為 python3.7 才是真正的 python3,因為有提供 typing hint 來做靜態分析。

  • 資深大佬 : johnnyNg

    上 ts

  • 資深大佬 : Immortal

    ts ts ts

  • 資深大佬 : libook

    为了提升代码可读性,也为了让 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 。

  • 資深大佬 : zachlhb

    @zxCoder 没有,扫描的都是静态属性方法,你动态添加的扫描不到

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具