[英]error TS2322: Type 'string | null' is not assignable to type 'number'
[英]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.