为什么JavaScript中的其余参数如此称呼?
对我来说似乎很直观,但事实证明事情并不是这样的!目标是删除传递的元素(如果存在)并返回其余元素。我知道有很多方法可以实现这一目标 - 包括filter:const rest = selection.filter(i => i !== item)- 但是,正如我所说,我认为这种方法会是一件事 - 因为它是为了objects/key:value pairs.
if (selection.includes(item)) {
// remove if available
const [item, ...rest] = selection;
setSelection(rest)
} else {
// ...
}
Run Code Online (Sandbox Code Playgroud)
工作方式是将的元素destructuring分配给 item 并将其余项目分配给- 一个数组。这是正确的——至少从我的理解来看,事情就是这样运作的。firstselectionrest
是否可以使用解构赋值从数组中提取特定项目并将其余元素解压到变量中?
我目前正在将 Next.js 项目从 JavaScript 迁移到 TypeScript,但遇到了错误:Property 'className' does not exist on type '{ props: ReactNode; }'。在 Javascript 中,我可以从 props 中提取 className,但打字稿找不到类型。这是代码:
import { useRouter } from 'next/router'
import Link from 'next/link'
import { ReactNode } from 'react'
export { NavLink }
NavLink.defaultProps = {
exact: false,
}
interface NavLinkProps {
href: string
exact?: boolean
children: ReactNode
props: ReactNode
}
function NavLink({ href, exact, children, ...props }: NavLinkProps) {
const { pathname } = useRouter()
const isActive = exact …Run Code Online (Sandbox Code Playgroud)