我是Next.js和TypScript的新手,似乎找不到任何有关如何解决此问题的资源:

import Image from 'next/image';

export default function Item({ image }) { // <-- parameter image needs a 'type' definition?
  ...
}

但上面给出了有关参数image的通知/警告/错误:

Binding element 'image' implicitly has an 'any' type.ts(7031). (parameter) image: any

示例使用image:

<Image src={image} alt={title} fill />

我知道TS需要定义/声明变量类型,但我肯定不知道NextJS Image应该是什么"类型",而且我也知道给它any类型也不是正确的 Select ?如何解决此问题?

我try 了以下操作,但不起作用:

export default function Item({ image: Image }) { // <-- tried the `image: Image` syntax

是否有人有任何资源、文档或首选位置来搜索参数/函数的正确类型以及与之相关的正确语法来平息这些警告?

提前感谢.

推荐答案

默认情况下,在类型脚本中,如果您不指定变量的类型,则它将由内部的元素影响隐式类型化

如果它是一个对象,默认情况下隐式类型将是any https://www.typescriptlang.org/docs/handbook/type-inference.html

但您收到了noImplicitAny的警告,这在tsconnect中默认为真 https://www.typescriptlang.org/tsconfig/#noImplicitAny

您必须显式定义参数的类型,或者如果您确实希望any指定它

export default function Item({ image }: {image: Image}) 

在您的情况下,请小心受影响的类型内部应该具有图像属性才有效

如果Image对象包含图像的路径,您将获得以下内容

export default function Item({ image }: {image: string}) 

Javascript相关问答推荐

带对角线分隔符的图像滑动器

React:如何将表格收件箱正确渲染为表格主体内的组件?

使用Apps Script缩短谷歌表中的URL?

更新Reduxstore 中的状态变量,导致整个应用程序出现不必要的重新渲染

如何按预期聚合SON数据?

如何在NightWatch.js测试中允许浏览器权限?

我的glb文件没有加载到我的three.js文件中

在贝塞尔曲线的直线上找不到交叉点:(使用@Pomax的bezier.js)

如何在angular中从JSON值添加动态路由保护?

显示图—如何在图例项上添加删除线效果?

保持物品顺序的可变大小物品分配到平衡组的算法

如何在每次单击按钮时重新加载HighChart/设置HighChart动画?

类构造函数不能在没有用With Router包装的情况下调用

如何将数据块添加到d3力有向图中?

扩展类型的联合被解析为基类型

如何在Press上重新启动EXPO-AV视频?

构建器模式与参数对象输入

如何在脚本编译后直接将RxJ模块导入浏览器(无需Angel、webpack、LiteServer)

如何使用[ModelJSON,ArrayBuffer]调用tf.loadGraphModelSync

我如何才能获得价值观察家&对象&S的价值?