背景(请随意跳过问题)
我正试图破坏阿波罗号的回应
useLazyQuery
,然后更改一个变量。如果没有Typescript,它将是两行简单的代码:
let [someFunction, { data, loading }] = useLazyQuery(QUERY);
data = 'whatever'
然而,这冒犯了Typescript,因为我正在生成所有的变量
let
尽管大多数不会改变。所以,我把代码改为destrucure
最
的响应为常数,只有一个例外:
const stuff = useLazyQuery(QUERY);
let [_, { data }] = stuff; // get one variable as a non-constant
const [someFunction, { loading }] = stuff; // get the rest as constants
问题是,我仍然收到TypeScript错误/警告:
77:8警告“_”被分配了一个值,但从未使用过未使用的变量
77:8永远不会重新分配错误“_”。使用“const”而不是首选const
当然
_
只是一个占位符,可以帮助我销毁
data
,所以不应该重新分配。。。但在
允许
线使破坏工作。
问题
我本以为我可以告诉Typescript“别担心
_
,忽略它”,添加
@ts-ignore
评论:
const stuff = useLazyQuery(QUERY);
// @ts-ignore
let [_, { data }] = stuff; // get one variable as a non-constant
const [someFunction, { loading }] = stuff; // get the rest as constants
但所做的只是添加一个关于我应该如何使用的新警告
@ts-expect-error
而不是
@ts忽略
…它并没有消除关于我的警告/错误
_
变量
问题(两个相关问题)
-
我想
@ts忽略
忽略了下一行的所有警告/错误;有人能解释一下Typescript是如何决定哪些警告/错误的吗
@ts忽略
实际上忽略了,哪一个没有?
-
有人能解释一下我是如何让Typescript停止抱怨的吗
'_' is never reassigned. Use 'const' instead
错误(使用
@ts忽略
或其他任何东西)。。。而不放弃像destructuring这样的基本语言功能?