使用Places API实现Gmail插件地址自动补全时setSuggestions()报错
解决Gmail插件地址自动补全的参数类型不匹配错误
错误原因
CardService.SuggestionsResponseBuilder.setSuggestions() 的方法签名要求传入字符串数组,但你当前传入的是CardService.Suggestion对象数组,这直接导致了参数类型不匹配的错误。错误提示里的number[]说明数组中可能还混入了数字类型值(比如description字段意外为数字),进一步加剧了类型问题。
修正后的代码
直接提取Places API返回的地址描述字符串组成数组,无需创建CardService.Suggestion对象:
if (result.status === 'OK' && result.predictions && result.predictions.length > 0) { // 提取地址描述并确保为字符串类型 const suggestions = result.predictions.map(prediction => String(prediction.description)); return CardService.newSuggestionsResponseBuilder() .setSuggestions(suggestions) .build(); }
关键说明
- 你之前尝试直接传入单个字符串而非数组,不符合方法要求,因此也无法生效。
setSuggestions()必须接收字符串数组作为参数。 - 添加
String()转换是为了避免description字段意外为数字类型,确保数组元素全为字符串,彻底解决number[]参数不匹配的提示。
内容的提问来源于stack exchange,提问作者Desiree Stephens
相关产品推荐
相关产品推荐

