set не является функцией Typcript

Я хочу добавить объекты в машинописную карту и иметь проблему:

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

Не могли бы вы помочь мне найти ошибку?

javascript,typescript,

0

Ответов: 1


3

Ваш конструктор определяет this.thingsпустой объект, который не имеет определенной функции set. Вам нужно будет инициализировать new Map()вместо этого:

things: Map

constructor() {
  this.things = new Map()
}
JavaScript, машинопись,
Похожие вопросы
Яндекс.Метрика