Проблема с компиляцией TypeScript в формах Angular2

Я определил форму в Angular2 следующим образом:

    this.form = this._formBuilder.group({
        password: ['',Validators.required],
        passwordRepeat: ['',Validators.required]
    });

куда

public form:ControlGroup

Что хорошо, так как:

 _formBuilder = FormBuilder.group(controlsConfig: {
        [key: string]: any;
    }, extra?: {
        [key: string]: any;
    }): modelModule.ControlGroup

он возвращает ControlGroup.

Теперь в моем компоненте я использую:

this.user.password = this.passwordEditForm.controls.password.value;

Что выдает мне ошибку компиляции:

error TS2339: Property 'password' does not exist on type '{ [key: string]: AbstractControl; }'.

Похоже на ошибку. Любые идеи о том, как я могу преодолеть эту проблему? Я пытался сделать так:

export interface FormControlGroup extends ControlGroup{
password:any;
}

Но это дает мне еще больше ошибок:

error TS1206: Decorators are not valid here.
app/form.component.ts(30,9): error TS2322: Type 'ControlGroup' is not assignable to type 'FormControlGroup'.
  Property 'password' is missing in type 'ControlGroup'.
app/form.component.ts(37,61): error TS2339: Property 'password' does not exist on type '{ [key: string]: AbstractControl; }'.

person uksz    schedule 14.03.2016    source источник
comment
Какую версию Angular2 вы используете?   -  person Thierry Templier    schedule 14.03.2016
comment
угловой 2 2.0.0-бета.8   -  person uksz    schedule 14.03.2016


Ответы (1)


заменить следующее:

this.user.password = this.passwordEditForm.controls.password.value;

с

this.user.password = this.passwordEditForm.controls['password'].value;

Меня устраивает. Я думаю, что это только обходной путь.

person Erhard Karger    schedule 11.06.2016
comment
Работал и здесь, можете проверить ответ. Спасибо приятель - person webdevinci; 14.10.2016
comment
Спасибо за ответ. Здесь работало хорошо :) - person Paladini; 16.11.2016
comment
Хорошо, это обходной путь. Какое решение этих ошибок? - person smartmouse; 14.12.2016