我正在尝试用来自 API 的线索填充组件。我有一个 LeadService 文件以及我的 vue 模板文件。我遇到的问题是,我在模板文件上使用异步调用,该调用有效,但是当我去计算值时,它会抛出 property does not exit on type 错误。它实际上有效,您可以看到错误消息后面的正确组件。我不知道如何让错误消失。
这里是服务类LeadService.ts
import ApiService from "@/core/services/ApiService";
interface Lead {
id: string;
first_name: string;
last_name: string;
lead_form_name: string;
email: string;
campaign: string;
timestamp: number;
mobile_number: string;
message: string;
medium: string;
city: string;
state: string;
leadType: string;
quality: string;
source: string;
call_link: string;
company: string;
country: string;
}
export default class LeadService {
getLeads() {
const accountInfo = JSON.parse(localStorage.getItem('accountInfo') || '{}');
ApiService.setHeader();
return ApiService.query("/leads", {params: {client_id : accountInfo.client_id}})
.then(({ data }) => {
let leadData: Lead[] = data['Items'];
return leadData;
})
.catch(({ response }) => {
return response;
});
}
}
这是我的 vue 模板 Leads.vue
问题始于我的计算函数,我开始过滤 this.LeadData
基本上每个过滤器都会抛出 Property does not exit on type 错误,但它们确实存在。
需要注意的是,当 this.leadData 被设置时,它是一个代理。
任何帮助将不胜感激,我想知道是否可以抑制错误,尽管我不喜欢这个解决方案。
例如,在计算方法中的第一个过滤器中
// Get the total number of Paid Media leads
const totalPaid = this.leadData.filter(
lead => lead.medium == "paid_media"
).length;
medium 是 leadData 的一个属性,我实际上可以控制台记录它并且它工作得很好,但它仍然总是抛出 property does not exit on type。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
leadData的类型是从data()中的声明推断出来的。它被初始化为{},这意味着它的类型是一个不可变的空对象(并且不能附加任何属性)。但是,leadData最终被分配了LeadService().getLeads()的返回值,所以它的类型实际上应该是Lead对象的数组。要正确输入
leadData,请使用Lead[]的类型断言:export default defineComponent({ data() { return { //leadData: {}, ❌ leadData: [] as Lead[], ✅ } } })