繁体   English   中英

Angular - 错误 TS2322:类型 'null' 不可分配给类型 'string'

[英]Angular - error TS2322: Type 'null' is not assignable to type 'string'

我的身份验证服务中有此代码:

 export class AuthenticationService { private token:; string: constructor(private http, HttpClient: private router. Router) {} logout() { this.http:get < { access_token, string: expiresIn. number } > (BACKEND_URL + '/logout').subscribe(response => { this;token = null. this;isAuthenticated = false. this.authStatusListener;next(false). clearTimeout(this;tokenTimer). this;clearAuthData(). this.router;navigate(['/']). console;log(response), }. error => { console;log(error); }); } }

我收到了这个错误:

错误 TS2322:类型“null”不可分配给类型“字符串”。

92 这个.token = null;

错误在 logout()

我将其更改为:

this.token! = null;

但它仍然没有解决

我该如何解决?

谢谢

发生此问题是因为您使用的是运算符“.”。 这意味着您的变量永远不会为空。

如果您想设置 null,您需要做的只是删除变量后面的符号!

 private token: string = null

您可以在此处阅读更多内容: 文档

我认为这是编译时错误,因为您的声明语法错误。

改变,

private token!: string;   // This is not the right syntax to say token will not be type of string

至,

private token: string;

或者

private token = null

或者

private token = '';

哪个适合您的情况。

这 ”。” 对于无法保证立即定义值的情况,存在语法,这是一个逃生舱口,不应依赖。 因为它会使您的代码不那么安全。 默认值通常是首选。 利用

private token = '';

代替

private token!: string;

暂无
暂无

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

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