【问题标题】:Does anyone know where to find a SS2.0 JSDOC definition library?有谁知道在哪里可以找到 SS2.0 JSDOC 定义库?
【发布时间】:2023-04-07 16:26:01
【问题描述】:

有谁知道或有一个 JSDOC 定义库可以用于 SS2.0 吗??

我目前的 SS1.0 看起来像下面的那个,我用它来插入我的 IDE 并获得自动补全。

/** * Loads an existing saved search. The saved search could have been created using the UI, or created using nlapiCreateSearch(type, filters, columns) in conjunction with nlobjSearch.saveSearch(title, scriptId). 
*<br>API Governance: 5 
* @param {String} recType [optional] - The record internal ID of the record type you are searching (for example, customer|lead|prospect|partner|vendor|contact). This parameter is case-insensitive. 
* @param {String} searchId - The internal ID or script ID of the saved search. The script ID of the saved search is required, regardless of whether you specify the search type. If you do not specify the search type, you must set type to null and then set the script/search ID. 
* @returns {nlobjSearch} nlobjSearch
* @since 2012.1 */ 
function nlapiLoadSearch(recType, searchId) { };

不是真正的技术问题,但对每个人都会派上用场。

【问题讨论】:

标签: netsuite suitescript


【解决方案1】:

您可以考虑我所做的无需下载其他插件。
如果您拥有 SS2.0 API 的副本,然后使用“@param”和“@type”JSDOC 标签,您将能够启用代码辅助。
然后,每次您键入“CTRL”+“SPACE”时都会有提示。
除此之外,您的 IDE 还将提供每个功能的说明。
所以这就是你要做的。


  1. 在您的 NetSuite 帐户上,下载 SuiteScript 2.0 JavaScript 文件。您可以通过在 >Documents>Files>SuiteScripts> 导航来执行此操作。然后在屏幕的右侧,您应该会看到“SuiteScript 2.0 API”和“SuiteSCript 1.0 API”的链接。点击下载SS2.0。
  2. 在 Eclipse IDE 上,为 SS2.0 创建一个新的 JavaScript 项目或将其包含在您现有的项目中。
  3. 下一步在您正在工作的项目上,右键单击然后选择“属性”。在 >JavaScript>Include Path 下,然后在“Projects”子选项卡中,添加包含 SS2.0 API 的项目。
  4. 您现在将获得 SS2.0 的对象文字 API 的代码辅助。这些是“N/log”和“N'util”模块。
  5. 接下来要为 SS2.0 的对象构造函数 API(如“N/record”和“N/search”模块)启用代码辅助,我们应该在每个函数声明中添加“@param”JSDoc 标签。

    因此,如果我们要在脚本中使用“N/record”、“N/search”和“N/error”模块,我们应该在函数声明之前有以下示例 cmets。但请注意,它应该与“{[VALUE HERE]}”标签内的值和模块名称相匹配。还有注释部分和函数声明上的变量名。

    /**
    * Do something.
    * 
    * @param {record} objRec
    * @param {search} objSearch
    * @param {error} objError
    * 
    */
    function doSomething(objRec, objSearch, objError)
    {
           //CODE HERE
    }
    


    你也可以使用“@type”来声明你的变量。下面是示例代码。

    /**
    * Do something.
    * 
    */
    function doSomething()
    {
           /*** @type record**/
           var recCustomerRefund = record.create(
                {
                    type : 'customerrefund',
                    isDynamic : true
                }); 
    }
    

【讨论】:

  • 这正是我想要的。谢谢!!
  • 我可以将它添加到 Webstorm 中吗?
  • 我一定是在第 1 步和第 2 步中做错了什么。您能否详细说明为下载的 SS2.0 创建一个 javascript 项目意味着什么?它应该如何构建?或者,如果您可以跳过第 2 步(如暗示的那样),您如何在没有项目的情况下将其包含在内? TIA
  • @Leibnitz 能否请您指导更详细的步骤 2?谢谢!
  • 如何在 VS Code 中做到这一点?
【解决方案2】:

SS2 的工作方式本质上是不走运的。

考虑

define(['N/search'], function(bob){
    var srch = bob.load({id:'customsearch_my_search'});
}

什么是鲍勃?您的 IDE 必须非常聪明才能知道 bob 是搜索命名空间的一部分。这当然是可行的,但不太可能使用可以插入 IDE 的简单可下载文件。如果您只是使用“搜索”,这可能会使事情更有可能奏效,但现在您已经用完了一个无法在其他地方使用的非常通用的名称。

此外,如果 IDE 现在可以确定“bob”是什么,那么您的参数是无序散列,因此位置 @params 不再起作用。

打字稿可能会有所帮助。我一直在 https://github.com/BKnights/KotN-Netsuite 维护 SS1 的 Typescript 定义文件。当我开始使用 SS2.0 做更多事情时,我可能会为此做同样的事情。那么您的 IDE 将有更多机会:

define(['N/search'], function(bob:NSearch){...

所以你的 Typescript IDE 可以使用它来完成成员,至少你会对类型进行编译时检查

【讨论】:

    猜你喜欢
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2011-10-06
    • 2011-04-22
    • 1970-01-01
    相关资源
    最近更新 更多