2015-12-23 2 views
5

У меня есть эта часть кода, что бы я ни старался, я не могу получить следующую ошибку.TypeScript '...' не существует в type 'typeof ...'

Ошибка: Свойство 'EmailValidator' не существует в типе 'typeof UserValidators'.

Код:

import {EMAIL_REGEX} from '../constants'; 
import {Control} from 'angular2/common'; 

export interface IUserValidators { 
    EmailValidator(control: Control) : Object; 
} 

export class UserValidators implements IUserValidators { 
    EmailValidator(control: Control) : Object { 
    if (!control.value) { 
     return { 
     required: true 
     }; 
    } else if (control.value) { 
     if (!new RegExp(EMAIL_REGEX).test(control.value)) { 
     return { 
      invalid: true 
     }; 
     } 
    } 
    return {}; 
    } 
} 

Это, как я пытаюсь привнести EmailValidator:

this.fb.group({ 
     email: ['', UserValidators.EmailValidator] 
}); 
+4

Ошибка полностью верна. Это метод экземпляра; вам нужен экземпляр. – SLaks

+0

Спасибо, Слэкс, я забыл об этом. – alik

ответ

4

Вы должны создать экземпляр этого класса, чтобы иметь возможность получить доступ к нему, как это:

var userValidators : IUserValidators = new UserValidators(); 
userValidators.EmailValidator(ctrl); 
Смежные вопросы