Hbuilderx 版本: 4.65
问题:
在UTS中创建了方法提供给外部调用,参数对象中含有Function,会调用失败,将前端调用传入的参数识别成 Integer
My2ApiOptions .<init> argument 2 has type kotlin.jvm.functions.Function1, got java.lang.Integer但是如果用的是生成的模板中的对象 MyApiOptions 则没有问题,无论在里面添加什么参数都可以正常调用,但是如果修改了这个对象的名字,或者是复制一份都不行,我无法理解这是什么情况;只能使用多个参数的调用形式。  
代码如下:
interface.uts
export type MyApiOptions = {  
    names ?: string  
    success ?: (res : MyApiResult) => void  
    fail ?: (res : MyApiFail) => void  
    complete ?: (res : any) => void  
}  
export type My2ApiOptions = {  
    names ?: string  
    success ?: (res : MyApiResult) => void  
    fail ?: (res : MyApiFail) => void  
    complete ?: (res : any) => void  
}  
export type MyApi = (options : (res : any) => void) => void  
export type My1Api = (options : MyApiOptions ) => void  
export type My2Api = (options : (res : any) => void, names: string) => void  
export type My3Api = (options :My2ApiOptions) => voidindex.uts
export const myApi: MyApi = function (options) {……}  
export const my1Api: My1Api = function (options: MyApiOptions) {……}  
export const my2Api: My2Api = function (options, names) {……}  
export const my3Api: My3Api = function (options: My2ApiOptions) {……}前端App.vue
// 执行成功  
myApi(success: (res) => {})  
// 执行成功  
my1Api({  
   name: '123',  
   success: (res) => {}  
})  
// 执行成功  
my2Api( '123', success: (res) => {})  
// 执行失败, argument 2 has type kotlin.jvm.functions.Function1, got java.lang.Integer  
my3Api({  
   name: '123',  
   success: (res) => {}  
})  
 
             
             
             
			 
                                        
                                     
            
1 个回复
4***@qq.com - 安卓程序员
同问