Adr*_*ien 6 typescript reactjs
我无法理解。我熟悉 TypeScript,并且我正在尝试尽可能地坚持它的建议,但这对我来说毫无意义。
阅读提示后,我看到了类型的定义EffectCallback,其中包括:
type EffectCallback = (() => void)
Run Code Online (Sandbox Code Playgroud)
只是为了看看它是否有任何区别,我直接放置了类型的定义,正如您所看到的,它不再触发 TypeScript。
我缺少什么?
另一件事是,根据 TypeScript 告诉我的,useEffect需要一个EffectCallback,它最多是一个void作为参数返回的函数。
问题是,根据React 文档useEffect,我可以传递一个返回函数的函数。React 使用此函数进行清理。
我的直觉告诉我,有一件小事我无法掌握,否则我就无法弄清楚这一点!
在您的第一个代码示例中,您有:
(): EffectCallback => {
Run Code Online (Sandbox Code Playgroud)
这意味着这是一个返回EffectCallback. 然而,这并不是我们useEffect所期待的。该函数必须是一个,EffectCallback而不是返回一个。AnEffectCallback要么是不返回任何内容的函数,要么是返回拆卸函数的函数。
在第二个示例中,您将继续:
(): (() => void) => {
Run Code Online (Sandbox Code Playgroud)
现在你说它是一个返回拆卸函数的函数。返回拆卸函数的函数是执行 EffectCallback 的合法方法之一,因此它匹配。
除非您使用需要显式返回类型的 lint 规则,否则我不会费心使用useEffect. 这样做更简单() => {,如果您编写的代码返回了非法的内容useEffect,打字稿会指出这一点。
| 归档时间: |
|
| 查看次数: |
4718 次 |
| 最近记录: |