红色波浪线总是提示空的{}没有XX属性,这是从vue2的方法搬过来的,vue2是可以的,vue3要怎么改
export interface PlaneData { id?: number; code?: string; model?: string; label?: string; airlines?: string; type_id?: number; type_value?: string; property_id?: number; property_value?: string; first_seats?: number; biz_seats?: number; economy_seats?: number; first_map?: object | undefined; biz_map?: object | undefined; economy_map?: object | undefined; first_fare?: number; biz_fare?: number; economy_fare?: number; sort?: number; memo?: string; enabled?: number; create_by?: string; update_by?: string; short_name?: string;}const RowCol = (type: string, data: Object | RowColParam | undefined) => { mapType.value = type; isVisible.value = true; if (formData.value.economy_map.rows && formData.value.economy_map.start_row) { let rowNumber = ref<string[]>([]); let last = Number(formData.value.economy_map.rows) + Number(formData.value.economy_map.start_row); for (let i = formData.value.economy_map.start_row; i < last; i++) { rowNumber.value.push(i); } localStorage.setItem("economy", JSON.stringify(rowNumber)); } if (data) { ranks.value.row = data.rows; ranks.value.col = data.columns; ranks.value.start_row = data.start_row; ranks.value.columns_name = data.columns_name; ranks.value.tableData = data.seats; }};
export interface PlaneData { ... economy_map?: RowColParam; ...}
看你的代码,那几个属性貌似是 RowColParam
中定义的,那只需要把 economy_map
声明为这个类型就可以。另外,用了 ?
表示可选,就不需要加 | undefined
,自带。
economy_map: object
=> economy_map: Record<string, any>
加个if
判空
这句加了判空,你试试if (formData?.value?.economy_map?.rows && formData?.value?.economy_map?.start_row)
const RowCol = (type: string, data: Object | RowColParam | undefined) => { mapType.value = type; isVisible.value = true; if (formData?.value?.economy_map?.rows && formData?.value?.economy_map?.start_row) { let rowNumber = ref<string[]>([]); let last = Number(formData.value.economy_map.rows) + Number(formData.value.economy_map.start_row); for (let i = formData.value.economy_map.start_row; i < last; i++) { rowNumber.value.push(i); } localStorage.setItem("economy", JSON.stringify(rowNumber)); } if (data) { ranks.value.row = data.rows; ranks.value.col = data.columns; ranks.value.start_row = data.start_row; ranks.value.columns_name = data.columns_name; ranks.value.tableData = data.seats; }};
参考这里:
TS报错:类型‘object‘上不存在属性‘product_id’
大哥们,这个ts报错,原始svg上没t这么解决 其他地方搜不到相关结果
假设有一个类库X的输入文件,其中包含一些接口。 为了使用这个库,我需要传递一个与。当然,我可以在源文件中创建相同的接口: 但这样一来,我就有了让它和库中的一个保持最新的负担,而且它可能非常大,并导致大量代码重复。 因此,有没有办法“提取”接口的这个特定属性的类型?类似于(这不起作用,导致“找不到名称I2”错误)。 编辑:在TS操场上玩了一会儿后,我注意到以下代码完全实现了我想要的: 但是,它需要声
TypeScript抱怨HTMLElement没有value属性,但当我在JavaScript中使用它时,它可以正常工作。 在JavaScript中,var inputValue=document。getElementById('input1');安慰日志(inputValue.value);//它给出了输入元素的值 我可以知道为什么TypeScript抱怨吗?
为什么需要这样AddDataType<'AlarmTips'> 才能正确获取类型? 不是已经使用 <T>进行关联了吗?
topAncestorElement 的类型是 call 的返回值 undefined; 我希望使用 [].find.call 这种写法,要怎么修改呢? as unknown as HTMLElement 这样断言就行了。之前没注意看提示...