Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌应用程序脚本库自动完成_Google Apps Script_Javascript_Jsdoc - Fatal编程技术网

Google apps script 谷歌应用程序脚本库自动完成

Google apps script 谷歌应用程序脚本库自动完成,google-apps-script,javascript,jsdoc,Google Apps Script,Javascript,Jsdoc,我正在创建一个用于GoogleApps脚本的库,但遇到了一些问题,所以IDE自动完成将适用于最终用户 作为User.prototype.METHODNAME输入的所有方法都应显示在此库的自动完成中。当前只有.getEmail()方法出现在用户对象的自动完成中。.getName().getPassword().hasPaid()等方法也应出现,但不应出现。特别奇怪的是,当我交换.getEmail()和.getId()的方法名(并且仅交换方法名)时,IDE仍然显示.getEmail()作为唯一选项,

我正在创建一个用于GoogleApps脚本的库,但遇到了一些问题,所以IDE自动完成将适用于最终用户

作为User.prototype.METHODNAME输入的所有方法都应显示在此库的自动完成中。当前只有.getEmail()方法出现在用户对象的自动完成中。.getName().getPassword().hasPaid()等方法也应出现,但不应出现。特别奇怪的是,当我交换.getEmail()和.getId()的方法名(并且仅交换方法名)时,IDE仍然显示.getEmail()作为唯一选项,并运行原始的.getId()方法

以下是模拟库的库键,该库没有用于测试的敏感信息:m1tqnx8hyia1h8ikaojxirsqqtkxvxxc

/** 
*@param {Number} id
*@param {String} email
*@param {String} name
*@param {String} password
*@return {User} User
*/
function User(id, email, name, password){
  var ss = SpreadsheetApp.openById("INSERT SPREADSHEET HERE").getSheetByName("Users");
  var data = ss.getRange(1, 1, ss.getLastRow(), ss.getLastColumn()).getValues();
  for (var i = 1; i < data.length; i++){
    if (data[i][0] == id){
      this.id = id;
      this.email = data[i][1];
      this.name = data[i][2];
      this.password = data[i][3];
      this.picks = data[i][4];
      this.paid = data[i][5];   
    }
  }
  return this;
}
/**
* @param {Number} id ID of the user
* @return {User} User
*/
function getUserById(id){
  var user = new User(id, null, null, null);
  return user;
}
/**
* @param {String} email email of the user
* @param {String} name name of the user
* @return {User} User
*/
function getUserByEmailAndName(email, name){
  return new User(null, email, name, null);
}
/** 
*@return {Boolean} isCorrect
*/
User.prototype.checkPassword = function (password){ return this.password == Utilities.base64Encode(password); }

User.prototype.getEmail = function (){return this.email;}
/** 
*@return {Number} id 
*/
User.prototype.getId = function (){return this.id;}
/** 
*@return {String} name 
*/
User.prototype.getName = function (){return this.name;}
/** 
*@return {String} encodedPassword 
*/
User.prototype.getPassword = function (){return this.password;}
/** 
*@return {String} jsonPicks 
*/
User.prototype.getPicksAsString = function (){return this.picks;}
/** 
*@return {JSON} jsonPicks 
*/
User.prototype.getPicksAsJson = function (){return Utilities.jsonParse(this.picks);}
/** 
*@return {Boolean} hasPaid
*/
User.prototype.hasPaid = function (){return this.paid;}
/**
*@参数{Number}id
*@param{String}电子邮件
*@参数{String}名称
*@参数{String}密码
*@返回{User}User
*/
功能用户(id、电子邮件、姓名、密码){
var ss=SpreadsheetApp.openById(“在此插入电子表格”).getSheetByName(“用户”);
var data=ss.getRange(1,1,ss.getLastRow(),ss.getLastColumn()).getValues();
对于(变量i=1;i
我认为自动完成功能只适用于第一个库版本中的函数。所以我发现创建一个新的first库可以解决这个问题(但是现在你必须自己保存你的版本)

试试这个(这里所有的东西都是法语,但我会尽量翻译):

1) 将项目复制到新项目(文件创建副本) 2) 在此新项目中创建新库(文件管理版本) 3) 获取新项目库密钥(文件项目属性)
4) 将这个新库链接到具有密钥的项目(Resources库)

我认为自动完成功能只适用于第一个库版本中的函数。所以我发现创建一个新的first库可以解决这个问题(但是现在你必须自己保存你的版本)

试试这个(这里所有的东西都是法语,但我会尽量翻译):

1) 将项目复制到新项目(文件创建副本) 2) 在此新项目中创建新库(文件管理版本) 3) 获取新项目库密钥(文件项目属性)
4) 使用密钥(Resources Libraries)将此新库链接到您的项目中。

如果您正在使用TypeScript,或打算迁移到,我们已构建了一个软件包,旨在提供以下帮助:


您可以使用它为我们的面向对象库和用Typescript编写的客户端API生成autocomplete。

如果您正在使用Typescript,或者打算迁移到,我们已经构建了一个包,旨在提供以下帮助:


您可以使用它为我们的面向对象库和用Typescript编写的客户端API生成autocomplete。

尝试使用您的库,但似乎权限未设置为公用:“您没有访问库应用程序的权限,该应用程序由您的脚本使用,或已被删除。”此问题重复,请参阅和。已尝试使用您的库,但权限似乎未设置为公用:“您没有访问库应用程序的权限,该应用程序由您的脚本使用,或已被删除。”此问题重复,请参阅和。