我正在嘗試通過道具傳遞一個物件,但在理解 Typescript 想要什么時遇到了問題。
我是否為 Props 創建一個介面而不是為物件內的屬性創建一個單獨的介面?
我擁有的:
import React from 'react';
interface Props {
link: object;
}
interface link {
description: string;
url: string;
}
const Link = (props: Props) => {
const { link } = props;
return (
<div>
<div>
{ link.description }({ link.url })
</div>
</div>
);
};
export default Link;
我得到的錯誤:
Property 'description' does not exist on type 'object'. TS2339
Property 'url' does not exist on type 'object'. TS2339
uj5u.com熱心網友回復:
object從來都不是在 TS 中輸入內容的好方法,因為您無法從物件中檢索任何資訊(它的屬性,更不用說它的屬性型別了)。此外,您沒有使用link您正在創建的這個界面!你需要用它來輸入你的道具:
interface Link {
description: string;
url: string;
}
interface Props {
link: Link;
}
uj5u.com熱心網友回復:
像這樣使用它,因為 Typescript 無法檢測到物件是否具有屬性:
interface Props {
link: {
description: string;
url: string;
};
}
const Link = (props: Props) => {
const { link } = props;
return (
<div>
<div>
{link.description}({link.url})
</div>
</div>
);
};
export default Link;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/375631.html
上一篇:ReactContext和Provider資料未按預期傳遞
下一篇:統一變數獲得無窮大
