Ваш конструктор определяет this.things
пустой объект, который не имеет определенной функции set
. Вам нужно будет инициализировать new Map()
вместо этого:
things: Map
constructor() {
this.things = new Map()
}
Я хочу добавить объекты в машинописную карту и иметь проблему:
TypeError: export class Thing { id : string ; title : string ; конструктор ( id , title ) { this . title = title ; это . id = id ; } getID () { вернуть это . id ; } } . класс экспорта Robot { things = new Map < string , Thing > (); constructor () { this . things = {}; } public addThing ( t : Thing ) { this . вещи . set ( t . id , t ); } public showThings () { вернуть это . вещи ; } } не является функцией.
Мой код выглядит так:
Thing.ts:
let r: Robot = new Robot();
//...
app.get("/api/newThing", (req, res) => {
if (req.query.id === undefined | req.query.title === undefined) {
res.status(400);
res.setHeader("Content-Type", "text/html; charset=utf-8");
res.end("error here");
} else {
console.log(req.query.id, req.query.title);
r.addThing(req.query.id, new Thing(req.query.id, req.query.title));
res.send("Thing is added. Disconnection...");
console.log(r.showThings());
}
}
Robot.ts
this.things
И есть простой веб-интерфейс для ввода пользовательского ввода (название и идентификатор) и добавления его на карту. Это выглядит так:
Index.ts
set
Не могли бы вы помочь мне найти ошибку?