godbasin / wxapp-typescript-demo

小程序 typescript 最佳实践 demo
MIT License
195 stars 52 forks source link

你好,我有个关于typescript做微信小程序的问题。 #4

Closed w0330t closed 5 years ago

w0330t commented 5 years ago

我是一个前端新手,我也不确定在这里提一个issue合适不合适。请见谅 具体就是说自定义组件Component的methods的问题 就拿您的代码举一个例子。 image 我在您的代码onTap里面加了一个参数event,然后IDE就在mathod那里给我报错, TS2322: Type '{ onTap(event: any): void; }' is not assignable to type '{ [methodName: string]: (this: WxComponent) => any; }'. Property 'onTap' is incompatible with index signature. Type '(event: any) => void' is not assignable to type '(this: WxComponent) => any'. 微信官方提供的接口这个参数应该是一个this: WxComponent,所以这个event属于一个类型错误? 但是我并没有找到其他可以取得这个事件的办法,我看您博客上也有类似的写法, 虽然可以直接编译运行…… IDE的话,我用vs和webstorm都会报这个错误。 我想问一下这个是IDE的问题还是我有啥库没导入,如何解决这个错误? 不胜感激。

godbasin commented 5 years ago

这个是官方的typing,然后这里也有人提了相关的issues。 你可以自己改一下 component 的这个定义,我们目前随便改了个这样用着:

  methods?: {
    [methodName: string]: (e: any, ...args) => any;
  };

仅供参考

w0330t commented 5 years ago

我知道这个typing是官方的,所以才不那么确定,总之谢谢你,我准备用这个demo做框架做点小东西,如果有什么问题还请多多帮忙。

godbasin commented 5 years ago

我知道这个typing是官方的,所以才不那么确定,总之谢谢你,我准备用这个demo做框架做点小东西,如果有什么问题还请多多帮忙。

嗯,官方的typing库还有待完善的地方,你可以根据API文档看看确认就好。