我有一个计算属性(数组),它是从另一个计算属性中提取的。
当试图在属性上使用map/filter/reduce/find
时,它会导致linting错误:
Property 'map' does not exist on type 'ComputedRef<any>
那么,如何以正确的方式声明计算的属性呢?我使用Vue 3(复合api)和类型记录以及Volar (用于vscode)。
const product = reactive({}); //<-- empty until it is loaded
const getItem = computed(() => {
return items.map( (item:any) => { //<-- typescript error
return item; //(simplified code, returns 1 item in reality)
})
const items = computed(() => {
return product?.items; //<-- items array
});
我也试过
const items = computed<any[]>(() => {
这会导致相同的错误(对getItem函数)。
这是:
const items:any[] = computed<any[]>(() => {
这会导致Type 'ComputedRef<any>' is missing the following properties from type 'any[]': length, pop
(..etc)的“项”出现错误。
发布于 2022-09-14 14:36:36
计算参考文献有一个value
支柱,允许您访问ref的值。
所以你可以这样使用它:
const product = reactive({});
const getItem = computed(() => {
return items.value.map((item:any) => {
return item;
});
});
const items = computed(() => {
return product?.items;
});
https://stackoverflow.com/questions/73718638
复制相似问题