Синтаксис обещаний TypeScript - PullRequest
0 голосов
/ 21 мая 2019

Я недавно начал изучать TypeScript и натолкнулся на Starter Project из документации.Все выглядит довольно просто, но есть одна маленькая часть кода, которую я просто не мог понять.

Вот оно:

// Connect to MongoDB
const mongoUrl = MONGODB_URI;
(<any>mongoose).Promise = bluebird;
mongoose.connect(mongoUrl).then(
  () => {},
).catch(err => {
  console.log("MongoDB connection error. Please make sure MongoDB is running. " + err);
});

И меня сбивает с толку эта строка:

(<any>mongoose).Promise = bluebird;

Синтаксис <any>mongoose помнит меня о приведении типа,но я не думаю, что это действительно происходит здесь, так как у нас есть модуль bluebird, назначенный части .Promise.

Так что, если кто-нибудь сможет это выяснить, я буду очень признателен.

1 Ответ

1 голос
/ 21 мая 2019

<any>mongoose действительно приведение типов, хотя и старый синтаксис.Более актуальная форма будет (mongoose as any).Promise = bluebird.Это означает, что вы берете ссылку на mongoose и игнорируете ее фактический тип и рассматриваете ее как any.

. Это предотвращает ошибки времени компиляции от несовпадений типов с mongoose.

InВообще, вы не должны приводить к any, и вам следует выяснить, почему это требуется от вас в этом случае, и посмотреть, сможете ли вы этого избежать.

...