【问题标题】:Typescript throwing errors for spread operators传播运算符的打字稿抛出错误
【发布时间】:2018-12-30 01:13:19
【问题描述】:

我在 react 中使用 typescript 并且下面的文件抛出了很多错误,我不知道为什么(它作为 js 工作),但我怀疑这里与传播运算符有关?

import React from 'react'
import { Subscribe } from 'unstated'

const getStoreAsProps = (storeArr) => {
  const storeProps = {}
  storeArr.map((value) => (storeProps[value.name] = value))
  return storeProps
}

const withStore = (...args) => (Element) => () => (
  <Subscribe to={[...args]}>{(...args) => <Element {...getStoreAsProps(args)} />}</Subscribe>
)

export default withStore

tsc 抛出的错误是

workspace/app/store/index.ts:11:14 - 错误 TS1005: '>' 预期。

11 {(...args) => } ~~

workspace/app/store/index.ts:11:16 - 错误 TS1005: ')' 预期。

11 {(...args) => } ~

workspace/app/store/index.ts:11:19 - 错误 TS1109:表达式 预计。

11 {(...args) => } ~~~

workspace/app/store/index.ts:11:26 - 错误 TS1005: ',' 预期。

11 {(...args) => } ~

workspace/app/store/index.ts:11:30 - 错误 TS1136:属性分配 预计。

11 {(...args) => } ~

workspace/app/store/index.ts:11:40 - 错误 TS1005: ';'预计。

11 {(...args) => } ~~

workspace/app/store/index.ts:11:52 - 错误 TS1005: '>' 预期。

11 {(...args) => } ~

workspace/app/store/index.ts:11:80 - 错误 TS1109:表达式 预计。

11 {(...args) => } ~

workspace/app/store/index.ts:11:81 - 错误 TS1109:表达式 预计。

11 {(...args) => } ~

workspace/app/store/index.ts:11:83 - 错误 TS1110:预期类型。

11 {(...args) => } ~

workspace/app/store/index.ts:11:84 - 错误 TS1161:未终止 正则表达式字面量。

11 {(...args) => }

workspace/app/store/index.ts:12:1 - 错误 TS1128:声明或 预期的声明。

12) ~

如果有帮助,语法高亮也会在那里中断

【问题讨论】:

  • 试试import * as React from "react";

标签: javascript reactjs typescript ecmascript-6


【解决方案1】:

这些错误意味着编译器无法识别 JSX 语法。为了使其被识别,该文件应具有 .tsx 扩展名,而它目前具有 .ts 扩展名。

jsx compiler option 也应启用并设置为react

【讨论】:

    【解决方案2】:

    我有同样的问题: let temp: any = ...props.data.map((row:any) =&gt; {return row.json});

    React 已经像上面那样导入了:

    import * as React from "react";
    

    tsx 选项也设置为在 tsconfig 中做出反应

    现在我回答我自己的问题:

    如果你正在处理一个对象,你需要使用 Object.assign()

    let temp: any =  Object.assign({}, props.data.map((row:any) => {return row.json}));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      相关资源
      最近更新 更多