Angular 应用一直说 _user 未定义
Angular app keeps saying _user is not defined
我正在使用获取流教程使用 Angular 和 Django 构建一个聊天应用程序。 https://getstream.io/blog/realtime-chat-django-angular/
但是,我正在尝试 运行 应用程序来测试加入页面,但它一直说 属性 未在来自 state.service.ts 文件的构造函数中定义。
import { Injectable } from '@angular/core';
export declare interface User {
token: string;
apiKey: string;
username: string;
}
@Injectable({
providedIn: 'root',
})
export class StateService {
constructor() {}
private _user: User;
get user(): User {
return this._user;
}
set user(user: User) {
this._user = user;
}
}
创建StateService
时,_user
没有赋值,所以它的值为undefined
,但它的类型是User
,也就是说不能undefined
,它必须是一个具有 3 个特定字段的对象。您在这里有 4 种可能的解决方案:
使 _user
可为空。如果在您的情况下拥有未定义的用户是合法的情况,请按以下方式更改您的代码:
private _user?: User;
get user(): User|undefined {
return this._user;
}
set user(user: User|undefined) {
this._user = user;
}
创建一个虚拟用户。您可以用空字段开始初始化用户:
private _user: User = {token:'', apiKey:'', username:''};
通过在构造函数中要求确保用户始终存在:
constructor(user: User) { this._user=user}
告诉 TypeScript 你不在乎。您可以将 tsconfig setting strictNullChecks 设置为 false,这样您就不会收到错误消息。你仍然会有未定义的用户,这意味着它可能会在运行时崩溃你的脚本,所以我不会那样做。
我正在使用获取流教程使用 Angular 和 Django 构建一个聊天应用程序。 https://getstream.io/blog/realtime-chat-django-angular/
但是,我正在尝试 运行 应用程序来测试加入页面,但它一直说 属性 未在来自 state.service.ts 文件的构造函数中定义。
import { Injectable } from '@angular/core';
export declare interface User {
token: string;
apiKey: string;
username: string;
}
@Injectable({
providedIn: 'root',
})
export class StateService {
constructor() {}
private _user: User;
get user(): User {
return this._user;
}
set user(user: User) {
this._user = user;
}
}
创建StateService
时,_user
没有赋值,所以它的值为undefined
,但它的类型是User
,也就是说不能undefined
,它必须是一个具有 3 个特定字段的对象。您在这里有 4 种可能的解决方案:
使
_user
可为空。如果在您的情况下拥有未定义的用户是合法的情况,请按以下方式更改您的代码:private _user?: User; get user(): User|undefined { return this._user; } set user(user: User|undefined) { this._user = user; }
创建一个虚拟用户。您可以用空字段开始初始化用户:
private _user: User = {token:'', apiKey:'', username:''};
通过在构造函数中要求确保用户始终存在:
constructor(user: User) { this._user=user}
告诉 TypeScript 你不在乎。您可以将 tsconfig setting strictNullChecks 设置为 false,这样您就不会收到错误消息。你仍然会有未定义的用户,这意味着它可能会在运行时崩溃你的脚本,所以我不会那样做。