1# 当前已知不支持推荐方案 2 31.注册的object回调不支持箭头函数写法, 注册回调格式为addXXX,注销回调格式为removeXXX,且回调方法命名格式为onXXX, 例如: 4 5``` 6export interface InterfaceB { 7 byClass: (listener: InterfaceA) => void; 8} 9export interface InterfaceA { 10 callFunction: (res: number) => void; 11} 12``` 13 14修改为: 15 16``` 17export interface InterfaceB { 18 // object注册回调, 关键字:add 19 addByClass(listener: InterfaceA); 20 // object注销回调, 关键字:remove 21 removeByClass(listener: InterfaceA); 22} 23export interface InterfaceA { 24 onCallFunction(res: number): void; 25} 26``` 27 282.注册回调只能支持单个参数, 且注册单个参数的注册回调方法命名格式为registerXXX, 例如: 29 30``` 31export interface TestA { 32 bGyClass: (a: number, callback: (result: number) => void) => number; 33} 34``` 35 36修改为: 37 38``` 39export interface TestA { 40 // 原bGyClass的参数 callback: (res: number) => void 改为registerXXX/unRegisterXXX形式 41 // register形式注册回调, 关键字:register 42 registerTestACallback(callback: (dd: number) => void); 43 // unRegister形式注销回调, 关键字:unRegister 44 unRegisterTestACallback(callback: (dd: number) => void); 45 // gByClass用于调用回调 46 bGyClass: (a: number) => number; 47} 48``` 49 503.生成报错:The current version does not support generating parameter。 51 52``` 53genError:at paramGenerate [C:\snapshot\napi_generator\src\gen\generate\param_generate.js(899:17)] The current version does not support generating parameter [elementName] with type [ElementName] 54``` 55 56ts文件为: 57 58``` 59import { ElementName } from './bundleManager/ElementName'; 60 61declare namespace cardEmulation { 62 export class HceService { 63 start(elementName: ElementName, aidList: string[]): void; 64 stop(elementName: ElementName): void; 65 } 66} 67export default cardEmulation; 68``` 69 70修改: 71 72文件中引用了 ElementName 类型, 需要把被引用的文件( import { ElementName } from './bundleManager/ElementName'; )放到转换路径下工具才可进行转换