angular 在AbstractControl.getRawValue()中输入错误,

wfsdck30  于 6个月前  发布在  Angular
关注(0)|答案(5)|浏览(43)

哪个@angular/*包是bug的来源?

forms

这是个回归吗?

描述

在AbstractControl类定义中,你使用了泛型
AbstractControl<TValue = any, TRawValue extends TValue = TValue>
(https://github.com/angular/angular/blob/15.2.x/packages/forms/src/model/abstract_model.ts#L346)
但是在getRawValue方法中,你返回了任何
getRawValue(): any
(https://github.com/angular/angular/blob/15.2.x/packages/forms/src/model/abstract_model.ts#L1025)
我认为这里应该是TRawValue而不是any。我不能在使用异步验证器时不进行类型转换就使用泛型。

@Injectable({ providedIn: 'root' })
export class UniqueAlterEgoValidator implements AsyncValidator {
  constructor(private heroesService: HeroesService) {}

  validate(
    control: AbstractControl<string>
  ): Observable<ValidationErrors | null> {
    const value = control.getRawValue(); // any instead of string
    return this.heroesService.isAlterEgoTaken(value).pipe(
      map(isTaken => (isTaken ? { uniqueAlterEgo: true } : null)),
      catchError(() => of(null))
    );
  }
}

请提供一个最小复现bug的链接

  • 无响应*

请提供您看到的异常或错误

  • 无响应*

请提供您发现此bug的环境(运行ng version)

  • 无响应*

还有其他问题吗?

  • 无响应*
uhry853o

uhry853o1#

有人能把这个问题分配给我,并帮助我开始贡献吗?

wztqucjr

wztqucjr2#

我不确定这个疏忽是怎么发生的,但不幸的是,现在这是一个破坏性的改变:(

vmjh9lq9

vmjh9lq93#

所以,看起来我们正在等待下一个主要版本发布

abithluo

abithluo4#

也许有人可以将这个问题添加到v18候选版本的里程碑中?这样就不会有人忘记了。谢谢!

$x_{1e0f1}^{x}$

oxosxuxt

oxosxuxt5#

也许我们会在ng19看到它?

相关问题