我正在嘗試通過為自己創建一個簡單的應用程式來學習使用 Typescript 的 Ionic React。
此時'我正在嘗試從陣列動態填充 IonSegment,相關代碼如下所示:
const [items, setItems] = useLocalStorage([{ id: 0, value: 'Item 0' }, { id: 1, value: 'Item 1' }, { id: 1, value: 'Item 1' }], [{ id: 0, value: 'An Error Occurred' }]);
....
<IonSegment color="brand" onIonChange={ ....... } value={sensor} id="segSensor">
{items.map(item => {
return (
<IonSegmentButton key={item.id}>
<IonLabel>{item.value}</IonLabel>
</IonSegmentButton>
)
})}
</IonSegment>
這無法編譯輸出:
引數“item”隱式具有“any”型別。ts(7006)
所以,我知道 item 需要宣告一個型別,但我嘗試了以下但沒有成功:
{items.map(item:any => {
return (
{items.map(<any>item => {
return (
如何宣告專案的型別?
謝謝
uj5u.com熱心網友回復:
嗯,它很簡單,你必須將你的輸入括在括號中
items.map((item: any) => {})
您可以做的另一件事是進入您的tsconfig.json檔案并將其設定noImplicityAny為 false。如果某些內容具有隱式any型別,這將阻止 TypeScript 對您大喊大叫。
uj5u.com熱心網友回復:
items.map((item: any) => { ...
可能問題也出在 useLocalStorage 型別上,也許您必須為初始狀態創建一個型別/介面
useLocalStorage<MyLocalStorageType>( ...
這樣你就可以使用TS的全部功能了
uj5u.com熱心網友回復:
宣告型別時,您缺少箭頭函式中的 paranteses:
{items.map((item: any) => {
return (
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/361074.html
