我現在的代碼是這樣的。但我現在收到一個錯誤
我想要做的是我想宣告一個包含一堆 ToDo 的陣列,但我收到了一個錯誤。
interface ToDo {
id: number;
text: string;
done: boolean;
}
interface InitalToDos {
initialToDos: ToDo[];
}
const ToDoApp: React.FC = () => {
//error in initialToDos
const initialToDos: InitalToDos = [
{
id: 1,
text: "Learn React",
completed: false,
},
{
id: 2,
text: "Learn TypeScript",
completed: false,
},
];
這是錯誤日志
Type '{ id: number; text: string; completed: boolean; }[]' is missing the following properties from type '{ id: number; text: string; completed: boolean; }'
uj5u.com熱心網友回復:
修改如下界面:
interface InitalToDos {
initialToDos: ToDo[];
}
到
type InitalToDos = ToDo[];
核心問題是您正在為一個物件定義一個介面,該介面包含一個名為的屬性,該屬性initialToDos包含一個陣列值ToDos,而const initialToDos它只是一個簡單的陣列,而不是一個物件。
uj5u.com熱心網友回復:
您正在為型別分配錯誤的資料InitalToDos
您應該這樣做
const initialToDos: InitalToDos = { initialToDos: [... ToDos goes here]}
或者
const initialToDos: ToDo[] = [... ToDos goes here]
uj5u.com熱心網友回復:
解決方案:
interface ToDo {
id: number;
text: string;
completed: boolean;
}
interface InitalToDos {
initialToDos: ToDo[];
}
const ToDoApp: React.FC = () => {
//error in initialToDos
const initialToDos: InitalToDos = { initialToDos: [
{
id: 1,
text: "Learn React",
completed: false,
},
{
id: 2,
text: "Learn TypeScript",
completed: false,
},
] }
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/466988.html
標籤:打字稿
上一篇:如何在TypeScript中輸出Hackerrank二叉樹問題?
下一篇:在打字稿中推斷函式引數型別
