【问题标题】:Declaring array in react typescript tsx file gives "error TS1109: Expression expected"在 react typescript tsx 文件中声明数组会给出“错误 TS1109:预期表达式”
【发布时间】:2019-05-14 06:21:33
【问题描述】:

当我尝试在 React(但使用 typescript)tsx 文件中声明一个数组时,我收到错误消息:

“错误 TS1109:预期表达式”

  public render() {
    return (
      <div>
        {  var nums:number[] = [1,2,3,3]  }  // ERROR HERE
      </div>
    )
  }

【问题讨论】:

    标签: reactjs typescript tsx


    【解决方案1】:

    您的代码var nums:number[] = [1,2,3,3] 不是表达式。这是一个声明。

    表达式是[1,2,3,3]

    简单的思考方式

    任何可以赋值给变量的都是表达式。你不会这样做:

    const foo = var nums:number[] = [1,2,3,3]; // ERROR `var nums:number[] = [1,2,3,3]` is not an expression
    

    声明的解决方案

    在 JSX 之外进行,例如

    public render() {
        var nums:number[] = [1,2,3,3]
        return (
          <div>
            {  nums[0]  }
          </div>
        )
      }
    

    【讨论】:

    • 那么可以不在这里定义一个渲染/返回的数组吗?
    • 添加了“声明解决方案”
    • @Greg,您在技术上可以,但通常不建议这样做。你到底想要完成什么?
    • 好的 - 我觉得很困惑 - 以为我可以在 jsx 中做到这一点,但现在它在 tsx 中不起作用 - 所以基本上需要在我假设的渲染方法的“返回”部分之外声明一个反应组件
    • @Greg,是的,所有数据结构都应该在之前初始化和设置,这样你就可以在渲染 JSX 时插入它们。如果您迫切需要它,有一个非常丑陋且破坏性能的解决方法
    猜你喜欢
    • 2021-08-04
    • 2023-04-08
    • 2016-06-19
    • 2020-07-11
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多