如何在Typescript中解决数组的类型?

xt0899hw  于 2023-04-07  发布在  TypeScript
关注(0)|答案(1)|浏览(96)
private validatorsFormAllField(FormGroup: FormGroup) {
    Object.keys(FormGroup.controls).forEach((field) => {
        const control = FormGroup.get(field);
        if (control instanceof FormControl) {
            control.markAsDirty({ onlySelf: true });
        } else if (control instanceof FormGroup) {
            this.validatorsFormAllField(control as FormGroup);
        }
    });
}

在检查instanceofFormGroup类型时出现错误
“instanceof”表达式的右侧必须是“any”类型或可分配给“Function”接口类型的类型。
另外,自动完成没有在else if块中注册FormGroup的类型,所以我假设我不能像这样检查FormGroup类型。
判断传递的数组类型的正确方法是什么?

hlswsv35

hlswsv351#

FormGroup: FormGroup的作用是“创建一个名为FormGroup的变量,其类型为FormGroup,并且,由于该变量名为FormGroup,因此对于此函数的其余部分,FormGroup引用的是一个变量,而不是一个类型。”(用技术术语来说,您的类型为shadowed or masked。)
尝试类似formGroup: FormGroup的代码(使用camelCase作为变量名是更常见的JavaScript/TypeScript编码风格,它应该可以避免这个问题)。

相关问题