[英]typescript use preset value for property value in array object error?
我有這個簡單的 typescript 代碼用於反應
type fruitCode = 'apple' | 'banana'
interface fruitList {
name: fruitCode
}
const [arr, setArr] = useState<fruitList[] | []>([])
useEffect(() => {
const arrList = [{
name: 'apple'
}, {
name: 'banana'
}];
//error?
setArr(arrList)
}, [])
演示https://codesandbox.io/s/react-typescript-forked-gi6fw?file=/src/App.tsx:103-391
如何限制我的財產價值是“蘋果”和“香蕉”?
Typescript 無法推斷arrList
的類型所以直接設置
const arrList: fruitList[] = [
// ...
]
我也會刪除| []
| []
來自 state 類型定義,只是沒有意義
const [arr, setArr] = useState<fruitList[]>([])
空數組仍然滿足fruitList[]
要求。
最后,你的接口和類型不應該是組件的一部分。 將它們移到App
上方
type fruitCode = "apple" | "banana";
interface fruitList {
name: fruitCode;
}
export default function App() {
// ...
}
您會注意到在此之后沒有關於您的useEffect
依賴項的警告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.