1
ネイティブの角度サービスを拡張するクラスを作成し、それをオーバーライドするためにクラスプロバイダを使用しました。useClassプロバイダで正しいintellisenseを取得する方法
拡張サービス
@Injectable()
export class ExtendedFormBuilder extends FormBuilder {
control(
formState: any,
validator: any = null,
asyncValidator: any = null,
errorConfig: any = null
): ExtendedFormControl {
return new ExtendedFormControl(formState, validator, asyncValidator, errorConfig);
}
}
app.module
{
provide: FormBuilder,
useClass: ExtendedFormBuilder
}
の一部は、しかし、私のコンポーネントでインテリセンスはまだ私は古いFormBuilder
クラスを使用しています考えています。
this.fb.control('Joe', [
Validators.required,
Validators.minLength(2)
], null, { // Error! `FormBuilder.control` takes only 3 params, not 4.
minLength: 2
})
これを回避する方法はありますか。提供クラスを使用しますか?
注意すべき点は、コードが機能していることです。機能していないのは、タイプコードのタイプのチェックです。つまり、コードをビルドできません。
https://angular.io/docs/ts/latest/cookbook/dependency-injection.html#useclass