[Typescript] Function scope in typescript

We have the following code which has compile error:

  async function readData(event?: Event | unknown): Promise<void> {
    // ...
    let text: string | undefined
    // ...

    if (!text) return
    setData((state) => ({ ...state, data: text })) // Typescript doesn't compile because text is still `string | undefined`
  }

 

Main reason is about function scope, text is defined in readData function, and we try to use it in another function scope (state) => ({ ...state, data: text }) , because two different function scopes, therefore text remains type string | undefined

 

Solutions to resolve this issue:

  1. Move to readData scope
    if (!clipboardText) return
    const data = clipboardText // move it here
    setClipboardData((state) => ({ ...state, data })) 

 

  2. Move to arrow function scope
    setData((state) => {
      if (!text) return state;
      return {
        ...state,
        data: text
      }
    })

 

posted @   Zhentiw  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2020-11-04 [Javascript] Broadcaster + Operator + Listener pattern -- 15. Create a Sequence of Broadcasters
2020-11-04 [Kotlin Spring boot] Connect template with a backing bean
2020-11-04 [Kotlin Spring boot] Enable automatically recompile for Spring boot project with devtool
2020-11-04 [Tools MarkDown] Create a Diff in Markdown to Show What Has Changed in a Code Snippet
2020-11-04 [Javascript] Broadcaster + Operator + Listener pattern -- 14. Marking Done Based on a Condition
2019-11-04 [NPM + React] Prepare a Custom React Hook to be Published as an npm Package
2019-11-04 [Debug] How to Debug a NestJs Backend using the Chrome Dev Tools
点击右上角即可分享
微信分享提示