Merge pull request #4683 from thelounge/chanProps
models/chan: don't force existence of constructor properties
This commit is contained in:
commit
8fc696620f
@ -34,19 +34,18 @@ export type FilteredChannel = Chan & {
|
||||
};
|
||||
|
||||
class Chan {
|
||||
// TODO: don't force existence, figure out how to make TS infer it.
|
||||
id!: number;
|
||||
messages!: Msg[];
|
||||
name!: string;
|
||||
key!: string;
|
||||
topic!: string;
|
||||
firstUnread!: number;
|
||||
unread!: number;
|
||||
highlight!: number;
|
||||
users!: Map<string, User>;
|
||||
muted!: boolean;
|
||||
type!: ChanType;
|
||||
state!: ChanState;
|
||||
id: number;
|
||||
messages: Msg[];
|
||||
name: string;
|
||||
key: string;
|
||||
topic: string;
|
||||
firstUnread: number;
|
||||
unread: number;
|
||||
highlight: number;
|
||||
users: Map<string, User>;
|
||||
muted: boolean;
|
||||
type: ChanType;
|
||||
state: ChanState;
|
||||
|
||||
userAway?: boolean;
|
||||
special?: SpecialChanType;
|
||||
@ -56,20 +55,22 @@ class Chan {
|
||||
static optionalProperties = ["userAway", "special", "data", "closed", "num_users"];
|
||||
|
||||
constructor(attr?: Partial<Chan>) {
|
||||
_.defaults(this, attr, {
|
||||
id: 0,
|
||||
messages: [],
|
||||
name: "",
|
||||
key: "",
|
||||
topic: "",
|
||||
type: ChanType.CHANNEL,
|
||||
state: ChanState.PARTED,
|
||||
firstUnread: 0,
|
||||
unread: 0,
|
||||
highlight: 0,
|
||||
users: new Map(),
|
||||
muted: false,
|
||||
});
|
||||
this.id = 0;
|
||||
this.messages = [];
|
||||
this.name = "";
|
||||
this.key = "";
|
||||
this.topic = "";
|
||||
this.type = ChanType.CHANNEL;
|
||||
this.state = ChanState.PARTED;
|
||||
this.firstUnread = 0;
|
||||
this.unread = 0;
|
||||
this.highlight = 0;
|
||||
this.users = new Map();
|
||||
this.muted = false;
|
||||
|
||||
if (attr) {
|
||||
Object.assign(this, attr);
|
||||
}
|
||||
}
|
||||
|
||||
destroy() {
|
||||
|
Loading…
Reference in New Issue
Block a user