Нулевые / неопределенные проверки не работают в классах, которые принимают общие реквизиты.
interface IFooProps {
minDate?: Date;
}
1 - это выдает «undefined не может быть назначен типу« Ошибка »в функции updateDate при вызове функции createNewDateWithMonth5
class Foo<P extends IFooProps> extends React.Component<P> {
updateDate() {
if (this.props.minDate) {
this.createNewDateWithMonth5(this.props.minDate)
}
}
createNewDateWithMonth5(date: Date): Date {
const newDate = new Date(date);
newDate.setMonth(5);
return newDate;
}
}
2 - это не дает ошибки и работает как ожидалось.
class Foo extends React.Component<IFooProps> {
updateDate() {
if (this.props.minDate) {
this.createNewDateWithMonth5(this.props.minDate)
}
}
createNewDateWithMonth5(date: Date): Date {
const newDate = new Date(date);
newDate.setMonth(5);
return newDate;
}
}
Я ожидал, что 1 будет работать как 2 без каких-либо ошибок.
Почему проверки null / undefined не работают в расширяемых классах с расширяемыми реквизитами.
Вот песочница ссылка для воспроизведения ошибки.