簡體   English   中英

Typescript 類型上不存在屬性

[英]Typescript property does not exist on type

我收到了兩個 list.item 引用的錯誤:client_1 | TS2339:屬性“items”在類型“List”上不存在。

這是一些相關的代碼。 如何在不將其設置為任何的情況下解決此問題?

export interface List {
    createdAt: number;
    id: string;
    items: Array<ToDo>;
    updatedAt: number;
}
const emptyList = { createdAt: 0, id: '', items: [], updatedAt: 0 }
...
const [list, setList] = useState<List>(emptyList)
...
const filterList = <List extends any>(list: List) => {
    if (activeFilter === 'All') {
        return setFilteredTodos(list.items)
    }

    setFilteredTodos(list.items.filter((todo: ToDo) => todo.completed === filterMap[activeFilter as keyof object] as {}))
}

在 function 之前編寫<List extends any>定義了一個泛型類型參數,在箭頭filterList上具有(新)名稱List

為了更清楚,您的代碼等效於:

const filterList = <T extends any>(list: T) => { ... }

由於您可能想使用上面的類型List ,因此您應該從分配給 filterList 的filterList中刪除<List extends any>

const filterList = (list: List) => { ... }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM