build()、copy() 和 setHelpText 被排除在 TextValidationBuilder 自动完成下拉列表之外

build(),copy() & setHelpText are being left off of the TextValidationBuilder auto complete drop down

我想了解更多关于 Google 表单的知识,所以我做了这个小表单,因为我正在向包含 URL 和电子邮件的 textItems 添加文本验证我注意到我希望在代码完成下拉列表中看到的一些内容不可用。所以我在没有它们的情况下尝试 运行 并不断收到 "cannot find setValidation(TextValidationBuilder)".

之类的错误
function createSimpleForm()
{
   var linkValidation=FormApp.createTextValidation().requireTextIsUrl();
   var emailValidation=FormApp.createTextValidation().requireTextIsEmail();
   var ss=SpreadsheetApp.getActiveSpreadsheet();
   var form=FormApp.create('Google Apps Script Question');
   form.setDescription('A Simple Form to display my script editing problem.')
       .setConfirmationMessage('Thanks.  I\'ll be getting back to you at your email.')
       .setAllowResponseEdits(true)
       .setAcceptingResponses(false)
       .setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());
   var containerLink=form.addTextItem();
   containerLink.setTitle('Enter a URL')
       .setValidation(linkValidation);
   var clientEmail=form.addTextItem();
   clientEmail.setTitle('Enter an email address')
      .setValidation(emailValidation)
      .isRequired();
}

然后我注意到只有 build() 命令 returns 一个 TextValidation 对象,而这正是 setValidation 的参数所需要的

所以那时我决定坚持我认为属于那里的命令并以 build() 结束并且代码运行没有错误。

function createSimpleForm()
{
   var linkValidation=FormApp.createTextValidation().setHelpText('This must be a URL.').requireTextIsUrl().build();
   var emailValidation=FormApp.createTextValidation().setHelpText('This must be a EMail.').requireTextIsEmail().build();
   var ss=SpreadsheetApp.getActiveSpreadsheet();
   var form=FormApp.create('Google Apps Script Question');
   form.setDescription('A Simple Form to display my script editing problem.')
       .setConfirmationMessage('Thanks.  I\'ll be getting back to you at your email.')
       .setAllowResponseEdits(true)
       .setAcceptingResponses(false)
       .setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());
   var containerLink=form.addTextItem();
   containerLink.setTitle('Enter a URL')
       .setValidation(linkValidation);
   var clientEmail=form.addTextItem();
   clientEmail.setTitle('Enter an email address')
      .setValidation(emailValidation)
      .isRequired();
}

我尝试关闭我的浏览器并返回到脚本编辑器,但它似乎没有任何区别,内容辅助仍然缺少相同的方法。 我想知道是否有人遇到过同样的问题?

是的,TextValidationBuilder 对象的自动完成中缺少方法 buildcopysetHelpText。您可能想在 Apps Script issue tracker 上报告此事。

文档比编辑器更可靠,所以当有疑问时,按照文档说的去做。自动完成在其他方面存在缺陷;例如,在数组对象上,它缺少 indexOfmapfilterreduce 等基本方法。