You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 16使用mat-datepicker过滤周末时出现错误

Angular 16中mat-datepicker过滤周末报错的解决方法

在Angular 16里使用mat-datepicker的matDatepickerFilter过滤周末时,会触发类型不匹配错误,错误提示为:

Type 'boolean' is not assignable to type 'boolean | null'. Type 'boolean' is not assignable to type 'null'.

原代码

HTML代码

<mat-form-field>
  <mat-label>01/01/2000</mat-label>
  <input matInput [matDatepickerFilter]="weekendsDatesFilter" formControlName="deliveryDate" [matDatepicker]="picker">

  <mat-hint>MM/DD/YYYY</mat-hint>
  <mat-datepicker-toggle matIconSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

TypeScript代码

weekendsDatesFilter = (d: Date): boolean => {
  const day = d.getDay();

  /* Prevent Saturday and Sunday for select. */
  return day !== 0 && day !== 6 ;
}

解决方法

Angular 16中matDatepickerFilter对应的回调函数类型DatepickerFilterFn要求返回值为boolean | null,而原代码中函数仅返回boolean,导致类型校验失败。只需修改函数的返回类型声明即可:

weekendsDatesFilter = (d: Date): boolean | null => {
  const day = d.getDay();

  /* Prevent Saturday and Sunday for select. */
  return day !== 0 && day !== 6 ;
}

该修改适配了Angular Material 16对日期过滤函数的类型更新,确保返回值符合框架要求,同时不影响原本的周末过滤逻辑。

内容的提问来源于stack exchange,提问作者Mathias Van Langendonck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:10:00