items.map:参数“item”隐式具有“any”类型

Phi*_*ley 2 typescript reactjs ionic-framework ionic-react react-typescript

我正在尝试通过为自己创建一个简单的应用程序来学习 Ionic React with Typescript。

此时,“我正在尝试从数组动态填充 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>
Run Code Online (Sandbox Code Playgroud)

编译失败,输出如下:

参数“item”隐式具有“any”类型。ts(7006)

所以,我知道该项目需要声明类型,但我尝试了以下操作但没有成功:

{items.map(item:any => {
              return (

{items.map(<any>item => {
              return (
Run Code Online (Sandbox Code Playgroud)

如何声明项目的类型?

谢谢

小智 7

嗯,很简单,您必须将输入括在括号中,如下所示

items.map((item: any) => {})
Run Code Online (Sandbox Code Playgroud)

您可以做的另一件事是进入您的tsconfig.json文件并将其设置noImplicityAny为 false。如果某些东西具有隐式类型,这将阻止 TypeScript 对你大喊大叫any