2015-12-23 31 views
5

Ho questo pezzo di codice che qualunque cosa provi, non posso ottenere il seguente errore.TypeScript '...' non esiste per tipo 'typeof ...'

Errore: La proprietà 'EmailValidator' non esiste sul tipo 'tipo di UserValidators'.

Codice:

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 {}; 
    } 
} 

Questo è come io cerco di iniettare l'EmailValidator:

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

L'errore è completamente corretto. Questo è un metodo di istanza; hai bisogno di un'istanza. – SLaks

+0

Grazie SLaks, me ne sono dimenticato. – alik

risposta

4

è necessario creare un'istanza di questa classe per essere in grado di accedervi, in questo modo:

var userValidators : IUserValidators = new UserValidators(); 
userValidators.EmailValidator(ctrl); 
Problemi correlati