Расширить существующий интерфейс Angular / Typescript - PullRequest
0 голосов
/ 29 октября 2018

VS Code/Typescript don't like this

Итак, я пытаюсь избавиться от красных кривых в моем компоненте html здесь. Проблема в том, что TypeScript / VS Code не может видеть свойство unverifiedEmail объекта errors, потому что оно не является родным для AbstractControl. Я использую пользовательский валидатор, который генерирует свойство. Этот код здесь:

custom.validators.ts

import { AuthService } from './../auth/auth.service'
import { AbstractControl } from '@angular/forms'
import { Injectable } from '@angular/core'

@Injectable()
export class CustomValidators {
  constructor (private authService: AuthService) { }

  unverifiedEmail (control: AbstractControl): { [key: string]: boolean } | null {
    if (this.authService.unverifiedEmails.some(email => email === control.value)) {
      return { unverifiedEmail: true }
    }
    return null
  }
}

У меня вопрос: как я могу «расширить» абстрактный элемент управления, чтобы включить возможность этого свойства unverifiedEmail, чтобы моя IDE оставила меня в покое. Вне пользовательского валидатора и этого шаблона я не взаимодействую с интерфейсом AbstractControl или свойством errors, поэтому у меня нет очевидной возможности импортировать расширенную версию AbstractControl (в обычном смысле расширения интерфейса). .

Спасибо, все.

...