简体   繁体   English

TSLint在Angle 2中的错误

[英]TSLint mistakes in angular 2

I have several mistakes in my code. 我的代码中有几个错误。 I'm use Angular 2 + TSLint: 我使用Angular 2 + TSLint:

constructor(http: Http) {
    this.http = http;
--> let currentUser = JSON.parse(localStorage.getItem("currentUser"));
    this.token = currentUser && currentUser.token;
}

In currentUser i have this error: message: 'expected variable-declaration: 'currentUser' to have a typedef ; 在currentUser中,我有此错误: message: 'expected variable-declaration: 'currentUser' to have a typedef

public loginC (username: string, password: string): Observable<boolean> {
    return this.http.post( authURL + loginURL,
                     --> JSON.stringify({ password: password, username: username }))
    .map((response: Response) => {
        let token: string = response.json() && response.json().token;
        if (token) {
          this.token = token;
      --> localStorage.setItem("currentUser", JSON.stringify({token: token, username: username}));
            return true;
        } else {
            return false;
        }
    });
}

And in password: password, username: username this: message: 'Expected property shorthand in object literal. 并在password: password, username: username此: message: 'Expected property shorthand in object literal. I really understand this. 我真的很明白 And finalli i can write a simple model: any {} ; 最后,我可以编写一个简单的model: any {} ;

export class LoginComponent {
--> public model: any = {};
public loading: boolean = false;
public error: string = "";
constructor (private router: Router, private authenticationService: ServerDataComponent) {
    // 
}

public login(): void {
    this.loading = true;
    this.authenticationService.loginC(this.model.username, this.model.password)
        .subscribe(result => {
           --> if (result === true) {
                this.router.navigate(["/table_per"]);
            } else {
                this.error = "Введен неверный логин и/или пароль";
                this.loading = false;
            }
        });
}

For any - Type declaration of 'any' is forbidden ; 对于任何Type declaration of 'any' is forbidden

Ror result - expected arrow-parameter: 'result' to have a typedef Ror结果- expected arrow-parameter: 'result' to have a typedef

For expected variable-declaration: 'currentUser' to have a typedef you can define an interface for your custom type. 对于expected variable-declaration: 'currentUser' to have a typedef您可以定义自定义类型的interface

export interface User {
  token: string;
}

And use it to set the type. 并使用它来设置类型。

let currentUser: User = JSON.parse(localStorage.getItem("currentUser"));

For Expected property shorthand in object literal you can use the shorthand syntax when the key name matches the name of the variable. 对于Expected property shorthand in object literal当键名与变量名匹配时,可以使用速记语法。

JSON.stringify({token, username})

For Type declaration of 'any' is forbidden you can try to change the type to Object . 对于Type declaration of 'any' is forbidden您可以尝试将类型更改为Object If not you'll need to declare another interface for your model. 如果不是,则需要为模型声明另一个interface

public model: Object = {};

For expected arrow-parameter: 'result' to have a typedef you need to set the type of the parameter. 对于expected arrow-parameter: 'result' to have a typedef您需要设置参数的类型。

.subscribe((result: boolean) => {

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM