传播运算符的打字稿抛出错误
Posted
技术标签:
【中文标题】传播运算符的打字稿抛出错误【英文标题】: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";
【参考方案1】:
这些错误意味着编译器无法识别 JSX 语法。为了使其被识别,该文件应具有 .tsx 扩展名,而它目前具有 .ts 扩展名。
jsx
compiler option 也应启用并设置为react
。
【讨论】:
【参考方案2】:我有同样的问题:
let temp: any = ...props.data.map((row:any) => 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));
【讨论】:
以上是关于传播运算符的打字稿抛出错误的主要内容,如果未能解决你的问题,请参考以下文章
在带有 loadClass 的打字稿中使用 es6 类和猫鼬
不传播的原因是啥(es 6传播运算符)javascript错误对象[重复]