2016-07-05 7 views
6

bir 'herhangi bir' türü vardır?typescript - Parametre 'u' örtük ben kod neye bakmak gerekir 2. <a href="https://github.com/leonardohjines/angular2-login/blob/master/app/authentication.service.ts" rel="noreferrer">authentication.service.ts</a></p> <p>Açısal son bu kodu dönüştürülen

app/auth/auth.service.ts(30,40): error TS7006: Parameter 'u' implicitly has an 'any' type. 

// services/auth.service.ts 
import {Injectable} from '@angular/core'; 
import {Router} from '@angular/router'; 

//http://4dev.tech/2016/03/login-screen-and-authentication-with-angular2/ 
//https://github.com/leonardohjines/angular2-login 
export class User { 
    constructor(
    public email: string, 
    public password: string) { } 
} 

var users:any = [ 
    new User('[email protected]','adm9'), 
    new User('[email protected]','a23') 
]; 

@Injectable() 
export class AuthenticationService { 

    constructor(
    private _router: Router){} 

    logout() { 
    localStorage.removeItem("user"); 
    this._router.navigate(['Login']); 
    } 

    login(user:any){ 
    var authenticatedUser = users.find(u => u.email === user.email); 
    if (authenticatedUser){ 
     localStorage.setItem("user", authenticatedUser); 
     this._router.navigate(['Home']);  
     return true; 
    } 
    return false; 

    } 

    checkCredentials(){ 
    if (localStorage.getItem("user") === null){ 
     this._router.navigate(['Login']); 
    } 
    } 
} 
+0

Bu hata için bir düzeltme gördünüz mü? –

cevap

9

Sen User türü yerine any kullanmayı deneyebilirsiniz:

var users:User[] = [ 
    (...) 
]; 

ve

var authenticatedUser = users.find((u:User) => u.email === user.email); 
2

sorunun nedeni bu durumda olduğu gibi, düzgün tanımlanmamış bir parametre olduğunu Şu örneği izleyen "u" değişkeni:

hizmetin sınıf modeli yok eğer 10, tanımlanması gerektiğini "u" size anda ne gerek dize veya başka türü olarak:

var authenticatedUser = users.find(u:string => u.email === user.email); 
0

i kullandık aynı örneği kullanıyorum.

Herhangi birini uygulamak yerine, parametre türünü User olarak ayarlayın.

login(user: User): boolean { ...

Sonra any anahtar sözcüğe herhangi bir başvuru kaldırmak:

Yani, giriş yöntemi böyle bir şey olurdu.

-2

değişiklik

tsconfig.json dosyası

"noImplicitAny": false,

ve eklemek

'NG2-formly': 'npm: NG2-formly/paketler/ng2-

7

kullanmayı düşünün systemjs.config.js için formly.umd.js' (u: any) => ...

İlgili konular