我使用的是Rails6、webpacker和ts-loader。我安装了@types/jquery。我有这个代码。
interface PDFSave {
url: string;
}
interface AjaxSuccessEvent {
detail: [PDFSave, any, any];
}
$(() => {
const setup = ($container: JQuery<HTMLElement>) => {
$container
.on('ajax:success', (e: AjaxSuccessEvent) => {
const [data] = e.detail;
// here I want to use the PDFSave data...
})
};
const $container = $('form.pdf-save-form');
setup($container);
});
Typescript写道:
/Users/(me)/work/(rails app文件夹)/app/javascript/(相关文件).ts(12,9)TS2769中的tsl错误:没有重载匹配此调用。最后的重载给出了以下错误。'string‘类型的参数不能赋值给'TypeEventHandlers void,HTMLElement,HTMLElement>’类型的参数。
我知道Rails UJS在事件的detail属性中将ajax调用的解析后的json作为3元组的第一个元素返回。我从服务器端的ajax调用返回{url:"http://some/place"}的json。
我的问题是,我如何才能优雅地让这个概念在Typescript中通过,而不会出现编译器错误。
转载请注明出处:http://www.lsql.net/article/20230430/970886.html