2015-12-23 51 views
5

私が試してみて、次のエラーを渡すことはできません。TypeScript '...'が型 '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

SLAKsありがとう、私はそれを忘れてしまった。 – alik

答えて

4

あなたはこのように、それにアクセスできるようにするには、このクラスのインスタンスを作成する必要があります。

var userValidators : IUserValidators = new UserValidators(); 
userValidators.EmailValidator(ctrl); 
関連する問題