为什么在此TypeScript箭头函数中出现此错误?

问题描述 投票:0回答:1

[在编写带有两个日期参数的箭头功能时遇到一些困难,并检查对象的日期是否代表同一天。

var result = (event.startDate, event.endDate) => { event.startDate.getFullYear() === event.endDate.getFullYear() &&
                                      event.startDate.getMonth() === event.endDate.getMonth() &&
                                      event.startDate.getDate() === event.endDate.getDate()
                                    }

但是Visual Studio Code在代码上给我这个错误:;'预期。

并编译我得到的代码:

ERROR in src/app/people-list/people-list.component.ts:103:51 - error TS1005: ';' expected.

103     var result = (event.startDate, event.endDate) => { event.startDate.getFullYear() === event.endDate.getFullYear() &&

怎么了?我想念什么?我该如何解决?另一个疑问是:我是否要明确返回结果或箭头函数中返回的结果不明确?

typescript arrow-functions
1个回答
0
投票

关于缺少分号的错误是因为箭头函数的主体位于一个块中,所以每个语句都必须正确终止。

话虽如此,我认为缺少分号不是唯一的问题。首先,定义箭头功能的方式看起来不正确。看起来您正在定义一个函数,但是参数定义看起来像它们是一个existig变量事件的属性。

如果已经有了事件对象,则不确定为什么需要箭头功能。

    var result = event.startDate.getFullYear() === event.endDate.getFullYear() &&                                       event.startDate.getMonth() === event.endDate.getMonth() &&                                           event.startDate.getDate() === event.endDate.getDate();

应该以结果为真或假结束。如果您真的想使用箭头功能,则需要像这样的文字

const fn = (event: any) =>  event.startDate.getFullYear() === event.endDate.getFullYear() &&                                       event.startDate.getMonth() === event.endDate.getMonth() &&                                           event.startDate.getDate() === event.endDate.getDate();

const result = fn(event);
© www.soinside.com 2019 - 2024. All rights reserved.