Я обновил @ types / lodash в проекте Angular CLI с версии 4.14.124 до 4.14.129 и начал получать сообщение об ошибке с некоторым существующим кодом, который ранее успешно переносился.
Argument of type 'string[]' is not assignable to parameter of type 'Many<ListIterator<
и
Type 'string' is not assignable to type 'ListIterator<
Код, о котором идет речь:
this.activeControllers = _(value)
.filter(x => x.budgetLevel === this.budgetLevel)
.groupBy('costCentrePositionId')
.map((grp, key) => ({
costCentrePositionId: key,
positionNumber: grp[0].positionNumber,
positionTitle: grp[0].positionTitle,
appliesStartDate: grp[0].costCentrePositionAppliesStartDate,
appliesEndDate: grp[0].costCentrePositionAppliesEndDate,
costCentrePositionActive: grp[0].costCentrePositionActive,
costCentreId: grp[0].costCentreId,
budgetLevel: grp[0].budgetLevel,
controllers: _(grp)
.filter(z => z.assignmentNumber !== null && z.assignmentActive)
.map(y => (
{
assignmentNumber: y.assignmentNumber,
assignmentRecordStatus: y.assignmentRecordStatus,
firstName: y.firstName,
lastName: y.lastName,
assignmentActive: y.assignmentActive
})
)
.orderBy('assignmentNumber', 'asc')
.value()
}))
.orderBy(['positionNumber', 'appliesStartDate'], ['asc', 'asc'])
.value();
Обсуждаются две строки:
.orderBy('assignmentNumber', 'asc')
и
.orderBy(['positionNumber', 'appliesStartDate'], ['asc', 'asc'])
До обновления версии @types/lodash
методы orderBy успешно принимали в качестве параметра строку или массив строк.
Я думаю, это может быть связано с версией TypeScript в рабочей области проекта в сочетании с @types/lodash
version?
В проекте используется TypeScript версии 3.2.4, как определено семантической версией ~ 3.2.4 в package.json.
Код использует цепочку lodash в соответствии с предоставленным примером кода.
Возможно ли, что в типах используется неправильная перегрузка?
Любая помощь приветствуется.