AppleScript报错:无法将handler generateNo转为text类型,求解决方案
Applescript 报错原因与修复方案
报错原因
你调用inputByName时,传递的第三个参数是my generateNo as text,这里的generateNo是函数(handler)对象,而非执行函数后得到的返回值。Applescript中,函数名不加括号代表引用函数本身,而不是执行它。你试图把函数对象转成text类型,这在语法上不被支持,所以抛出Can't make «handler generateNo» into type text错误。
修复方法
只需要在函数名后加上括号,执行函数获取返回值即可。因为你的generateNo函数已经返回text类型,甚至可以省略as text转换(加了也不影响)。
修改后的调用代码:
inputByName("number", 0, my generateNo())
或者保留类型转换(可选):
inputByName("number", 0, my generateNo() as text)
验证一下:执行generateNo()会返回字符串"1234",将这个字符串传递给inputByName的theValue参数,后续拼接JavaScript代码时就能正确赋值,不会再出现类型转换错误。
内容的提问来源于stack exchange,提问作者d-b
相关产品推荐
相关产品推荐

