我有下面的代码写在 typescript
const {
data: { pageCollection }
} = await apolloClient.query<PageSlugsQuery>({ query: GET_PAGE_SLUGS })
( [...(pageCollection?.items ?? [])].forEach((page) => {
console.log('PAGEEE', page)
}))
当我使用第二行时,我得到错误Block scoped variable pageCollection can not be used before its declaration
当我去掉第二行的括号
[...(pageCollection?.items ?? [])].forEach((page) => {
console.log('PAGEEE', page)
})
则会出现以下错误Cannot find name 'forEach'.
有人知道潜在的问题是什么吗?
2条答案
按热度按时间li9yvcax1#
问题是缺少一个非可选的
;
。您需要在第一条语句的末尾添加它,否则JavaScript(和TypeScript)会认为第二条语句是它的一部分:如果你打算编写依赖于分号自动插入的代码,那么确保你知道需要一个显式分号的规则是很重要的。一般来说,如果一行以
(
或[
开头,你需要在前一行的末尾加上;
(从技术上讲,这取决于前一行是什么,但总是这样做更安全)。旁注:调用
forEach
时不需要跨页,只需:我会使用
for-of
来代替,但这是一个风格问题:enyaitl32#
代码如下所示。这可能有用