反应和打字稿上的操作员错误

时间:2016-12-26 01:21:20

标签: javascript reactjs typescript

我有一个功能:

handleMarkerClick(targetMarker) {
    this.setState({
        markers: this.state.markers.map(marker => {
            if (marker === targetMarker) {
                return {
                    ...marker, //  error TS1136: Property assignment expected.

                    showInfo: true, // error TS1005: ',' expected.
                }; // error TS1135: Argument expression expected, error TS1005: ')' expected.
            }
            return marker; //  error TS1068: Unexpected token. A constructor, method, accessor, or property was expected.
        }), // Declaration or statement expected.
    });
}

我看到很多错误:

  • 预期的财产分配。
  • ','预期。
  • 预期的参数表达。
  • 您可能需要适当的加载程序来处理此文件类型。     | exports .__ esModule = true;     | exports [“default”] = PopUpInfoWindowExample;     |返回标记;

但是当我在'marker'附近删除'...'时,我的功能无法正常工作。

我这样做:

    handleMarkerClick(targetMarker) {
    this.setState({
        markers: this.state.markers.map(marker => {
            if (marker === targetMarker) {
                return {
                    marker, // delete ...
                    showInfo: true,
                };
            }
            return marker;
        }),
    });
}

为什么呢?我能做些什么才能获得正确的功能?

1 个答案:

答案 0 :(得分:1)

如果marker是一个对象,那么您可以尝试使用Object.assign()而不是使用点差运算符。这是一个例子:

marker = Object.assign({}, marker);