如何在 Google 脚本库中键入提示 Google 类型?
How to type hint Google Types in Google Scripts Library?
我问了一个,通过回答发现我没有问对问题!
说 LibraryFoo
是一个库,如果我在其他地方将其用作库,我会得到类型完成。例如,如果我有
/**
* Lorem ipsum
*
* @return {Object[]}
*
*/
function bar() {}
在 LibraryFoo
中,如果在另一个 Google 脚本中输入 LibraryFoo.bar().
,我会得到像 forEach
和 map
这样的数组的建议。但是,如果我有
/**
* Lorem ipsum
*
* @return {Sheet}
*
*/
function barring() {}
然后我输入 LibraryFoo.barring().
我没有收到像 getRange
或 getMaxColumns
这样的建议。我知道使用 clasp 和 local IDE 可能更有意义,但似乎是以下两种情况之一:
- 我使用了错误的 name/reference(虽然当输入 Google 自己的函数时,他们只是说“Sheet”。例如 SpreadsheetApp 的源代码是否可用?这可能是一个提示,或者不在正确的 GAS 中。
- 这是不可能的,因为Google做了一些I/we做不到的事情。
无论如何,尽管搜索并尝试了不同的方法来命名 Sheet
引用,但我还没有发现它是 1. 还是 2.(或其他东西!)。
[编辑:我做了一个 feature request 到 Google,仍然不确定它是 1./2./其他东西中的哪一个]
考虑
This is not currently possible to achieve in the Apps Script Editor.
Google Issuetracker 上有一些关于此的开放功能请求:
Support Object Oriented Interfaces with documentation for Libraries
Full jsdoc for classes and methods
还有一个 new feature request 作为讨论的结果提交 - 为它或上面提到的其他内容加注星标,以增加很快实施该功能的机会。
JSDoc 在 Google Apps 脚本中未得到完全支持,并且在当前状态下,自动补全不会比 top-level 定义更进一步。这适用于自定义 类 和 built-in 类,如 Spreadsheet
、Sheet
、Range
,因为这里的自动完成需要二级迭代。
新编辑器支持,语法示例如下:
/**
* Returns price list data from the Stock tab/sheet
*
* @param {number} index
* @return {SpreadsheetApp.Range}
*
*/
function getRange() {
return SpreadsheetApp.getActiveRange();
}
function foo() {
getRange().
}
您将在 getRange().
中的 .
之后完成范围对象。
如果函数来自库,这也适用。
我问了一个
说 LibraryFoo
是一个库,如果我在其他地方将其用作库,我会得到类型完成。例如,如果我有
/**
* Lorem ipsum
*
* @return {Object[]}
*
*/
function bar() {}
在 LibraryFoo
中,如果在另一个 Google 脚本中输入 LibraryFoo.bar().
,我会得到像 forEach
和 map
这样的数组的建议。但是,如果我有
/**
* Lorem ipsum
*
* @return {Sheet}
*
*/
function barring() {}
然后我输入 LibraryFoo.barring().
我没有收到像 getRange
或 getMaxColumns
这样的建议。我知道使用 clasp 和 local IDE 可能更有意义,但似乎是以下两种情况之一:
- 我使用了错误的 name/reference(虽然当输入 Google 自己的函数时,他们只是说“Sheet”。例如 SpreadsheetApp 的源代码是否可用?这可能是一个提示,或者不在正确的 GAS 中。
- 这是不可能的,因为Google做了一些I/we做不到的事情。
无论如何,尽管搜索并尝试了不同的方法来命名 Sheet
引用,但我还没有发现它是 1. 还是 2.(或其他东西!)。
[编辑:我做了一个 feature request 到 Google,仍然不确定它是 1./2./其他东西中的哪一个]
考虑
This is not currently possible to achieve in the Apps Script Editor.
Google Issuetracker 上有一些关于此的开放功能请求:
Support Object Oriented Interfaces with documentation for Libraries
Full jsdoc for classes and methods
还有一个 new feature request 作为讨论的结果提交 - 为它或上面提到的其他内容加注星标,以增加很快实施该功能的机会。
JSDoc 在 Google Apps 脚本中未得到完全支持,并且在当前状态下,自动补全不会比 top-level 定义更进一步。这适用于自定义 类 和 built-in 类,如 Spreadsheet
、Sheet
、Range
,因为这里的自动完成需要二级迭代。
新编辑器支持,语法示例如下:
/**
* Returns price list data from the Stock tab/sheet
*
* @param {number} index
* @return {SpreadsheetApp.Range}
*
*/
function getRange() {
return SpreadsheetApp.getActiveRange();
}
function foo() {
getRange().
}
您将在 getRange().
中的 .
之后完成范围对象。
如果函数来自库,这也适用。