#javascript #typescript
#javascript #typescript
Вопрос:
Я пытаюсь создать класс в typescript, но он всегда выдает ошибку, указанную ниже.
Ниже приведен журнал выполнения, и он выдает ошибку .
[LOG]: "adding"
[LOG]: undefined
[ERR]: Cannot set property 'hello' of undefined
class CustomDataStructure {
private _data: any;
public CustomDataStructure() {
this._data = {};
}
public addItem(value: string) {
console.log("adding");
console.log(this._data)
this._data[value] = new Date().getTime();
}
public removeItem(key: string) {
delete this._data[key];
}
public showData() {
return this._data;
}
}
let ss = new CustomDataStructure();
ss.addItem("hello");
Комментарии:
1. Что дает вам консоль внутри
addItem
?2.У вас нет
constructor
настройкиthis._data
CustomDataStructure
, которая не делает то, что вы думаете.
Ответ №1:
Вам нужно вызвать конструктор, который задает this._data
значение чему-то вроде empty object:
class CustomDataStructure {
private _data: any;
constructor() {
this._data = {};
}
public addItem(value: string) {
console.log("adding");
console.log(this._data)
this._data[value] = new Date().getTime();
console.log(this._data)
}
public removeItem(key: string) {
delete this._data[key];
}
public showData() {
return this._data;
}
}
let ss = new CustomDataStructure();
ss.addItem("hello");
Ответ №2:
class CustomDataStructure {
private _data: any;
constructor() {
this._data = {};
}
public addItem(value: string) {
console.log("adding");
console.log(this._data)
this._data[value] = new Date().getTime();
}
public removeItem(key: string) {
delete this._data[key];
}
public showData() {
return this._data;
}
}
let a = new CustomDataStructure();
a.addItem("Hello")
console.log(a.showData())