Definitelytyped: рдмреНрд▓реВрдмрд░реНрдб 3.0 рдкрд░рд┐рднрд╛рд╖рд╛ ES6 рд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдмрдВрдЯрд┐рдд рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рд╕рд┐рддре░ 2016  ┬╖  48рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: DefinitelyTyped/DefinitelyTyped

рдмреНрд▓реВрдмрд░реНрдб 3.0 рдкрд░рд┐рднрд╛рд╖рд╛ рдорд╛рдирдХ es6 рд╡рд╛рджрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЖрдмрдВрдЯрд┐рдд рдирд╣реАрдВ рд╣реИ:

Types of property 'then' are incompatible.
Type 'Bluebird<any>' is not assignable to type 'Promise<any>'.

/рд╕реАрд╕реА @рд▓рд╣реЗрдХрд░

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@silentorb рдореБрдЭреЗ @types/bluebird-global рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдлрд┐рд░ рдореЗрд░реЗ рдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдХрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╛рджрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ (рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ ES2015 рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ) рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ:

import * as Promise from 'bluebird';
global.Promise = require('bluebird');

рдЙрдкрд░реЛрдХреНрдд рдиреЛрдб рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдореИрдВ 6.10.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред рдЖрдк webpack рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдк _expose-loader_ рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред

рд╕рднреА 48 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@Strate рдХреНрдпрд╛ рдЖрдк bluebird.d.ts рдЦреЛрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ #10831 рд╕реЗ рдЗрд╕ рдПрдХрд▓ рдкрдВрдХреНрддрд┐ рдХреЛ рдЬреЛрдбрд╝реЗрдВред рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ?

рдкреВрд░реА рддреНрд░реБрдЯрд┐:

error TS2322: Type '(entity: BaseEntity) => Bluebird<{ contentType: "ActivityDesktopWidget" | "AddressType" | "Approv...' is not assignable to type 'UpdateEntityFunction<BaseEntity>'.
  Type 'Bluebird<{ contentType: "ActivityDesktopWidget" | "AddressType" | "Approval" | "BaseIntegrationEn...' is not assignable to type 'Promise<BaseEntity>'.
    Types of property 'then' are incompatible.
      Type '{ <U>(onFulfill: (value: { contentType: "ActivityDesktopWidget" | "AddressType" | "Approval" | "B...' is not assignable to type '{ <TResult1, TResult2>(onfulfilled: (value: BaseEntity) => TResult1 | PromiseLike<TResult1>, onre...'.
        Type 'Bluebird<any>' is not assignable to type 'Promise<any>'.

рдореИрдВ [email protected] рдХрд╛ рдЙрдкрдпреЛрдЧ lib.es2016.d.ts рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЙрд╕ рд▓рд╛рдЗрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред

рдЖрд╣ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ... рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рд▓рд╛рдЗрди рдХреЗ рдпрд╣рд╛рдБ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг U рдХреЛ onFulfill рдФрд░ рд╕рд╛рде рд╣реА onReject ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рдПрдирдкреАрдПрдо рдФрд░ рдЗрд╕ рдбреАрдЯреА рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдореЗрдВ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдмреАрдЪ рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдЕрдкрдиреЗ .then(success, failure) рдХреЛ .then(success).catch(failure) рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╢рд╛рдпрдж рдпрд╣реА рдЖрдкрдиреЗ рд╕рд╣реА рдХрд┐рдпрд╛ рд╣реИ? рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреНрд▓реВрдмрд░реНрдб рдХреЗ рд╕рд╛рде "рдкрд╕рдВрджреАрджрд╛" рдирд╣реАрдВ рд╣реИред

рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ U рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

.then<SomeType>(() => new SomeType(), (err) => 123); // This is an explicit error because SomeType != number

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рджреЛрдиреЛрдВ рдХреЙрд▓рдмреИрдХ рд╕реЗ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдВред

@lhecker рд▓реЗрдХрд┐рди рдореИрдВ then рдпрд╛ catch рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ:

// module 1. Note that bluebird is not imported
export default function<T>(promise: Promise<T>) {} // es6 promise used here

// module 2.
import Promise from "bluebird"
import handler from "./module1"
const promise: Promise<any>
handler(promise) // <-- error is here

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдФрд░ then рдШреЛрд╖рдгрд╛ рдЬреЛрдбрд╝рдХрд░ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ es6 рдХреЗ рдПрдХ рд╕реЗ bluebird.d.ts рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ

рдЖрд╣ рдзрд┐рдХреНрдХрд╛рд░ рд╣реИ ... рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдмреНрд░реЗрдХ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ

рддреЛ рдЗрд╕ рдмреАрдЪ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ: рдЪреВрдВрдХрд┐ рд╡реЗ рд╡реИрд╕реЗ рднреА рдЧрд╛рдпрдм рд╣реИрдВ рдФрд░ рдЪреВрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рд╕рдорд░реНрдерди рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ рдпрд╛ рдХрдо рд╕реЗ рдХрдо "рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП", рдЗрд╕рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА рдпрджрд┐ рдЖрдк рдЙрди рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рджреЛрдиреЛрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ

@lhecker рдХрд┐рдпрд╛ :)

рдмрд╕ рдПрдХ рд╕рд╛рдЗрдб рдиреЛрдЯ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рд╡рд╛рджреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рд╣рдореЗрд╢рд╛ PromiseLike рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдпрд╣ рдиреНрдпреВрдирддрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╡рд╛рджрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдЧрд╛ рддрд╛рдХрд┐ рдЖрдк рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд╛рджреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХреЗрдВред рдлрд┐рд░ рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрдж рдХрд╛ рд╡рд╛рджрд╛ рдкреНрд░рдХрд╛рд░ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ Bluebird<T> рддрд░рд╣ рд╕рдЦреНрдд рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВред рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП, ES6 рд╡рд╛рджреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ ES6 рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдореЗрд░рд╛ рдХреЛрдИ рднреА рд╡рд╛рджрд╛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рдерд╛ред

@blakeembrey рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ PromiseLike рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрддреНрддрд░ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ PromiseLike рдХрд╛ рддрдм рдХрд╛ рдЕрд╕рдВрдЧрдд рд╕рдВрд╕реНрдХрд░рдг рднреА

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ TS рд╕рдВрд╕реНрдХрд░рдг 2 рдореЗрдВ рдкреНрд░реЙрдорд┐рд╕ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдмрджрд▓ рдЧрдИ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдпреЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЕрдм рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА: https://github.com/Microsoft/TypeScript/blob/070aa83cc06b2974639bbefcde98e6e2fb5fe693/src/lib/es2015.promise.d.ts

рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ?

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

@OliverJAsh @ arg20 рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реНрд╡-рдкреНрд░рдЬрдирди рдпреЛрдЧреНрдп рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@Strate рдпрд╣рд╛рдБ рдЖрдкрдХреЛ рдореЗрд░реА рддреНрд░реБрдЯрд┐ рд╣реИред рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ 2.0.3 (lib.es6.d.ts) рдФрд░ @types/bluebird v3.0.33 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

error TS2345: Argument of type 'Bluebird<Db>' is not assignable to parameter of type 'Promise
<Db>'.                                                                                                            
  Types of property 'then' are incompatible.                                                                      
    Type '{ <U1, U2>(onFulfill: (value: Db) => U1 | Thenable<U1>, onReject: (error: any) => U2 | Thenable<U...' is
 not assignable to type '{ <TResult1, TResult2>(onfulfilled: (value: Db) => TResult1 | PromiseLike<TResult1>, onre
jected: ...'.                                                                                                     
      Type 'Bluebird<any>' is not assignable to type 'Promise<any>'.                                              
        Types of property 'then' are incompatible.                                                                
          Type '{ <U1, U2>(onFulfill: (value: any) => U1 | Thenable<U1>, onReject: (error: any) => U2 | Thenable<.
..' is not assignable to type '{ <TResult1, TResult2>(onfulfilled: (value: any) => TResult1 | PromiseLike<TResult1
>, onrejected:...'.                                                                                               
            Type 'Bluebird<any>' is not assignable to type 'Promise<any>'.              

рдмреНрд▓реВрдмрд░реНрдб рдкреНрд░реЙрдорд┐рд╕ рдХреЛ ES6 рд╡рд╛рджреЗ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлреЗрдВрдХрддрд╛ рд╣реИ ( bluebirdPromise as Promise<Db> )

 error TS2352: Type 'Bluebird<Db>' cannot be converted to type 'Promise<Db>'.                 
  Types of property 'then' are incompatible.                                                                      
    Type '{ <U1, U2>(onFulfill: (value: Db) => U1 | Thenable<U1>, onReject: (error: any) => U2 | Thenable<U...' is  not comparable to type '{ <TResult1, TResult2>(onfulfilled: (value: Db) => TResult1 | PromiseLike<TResult1>, onrejected: ...'.                                                                                                     
      Type 'Bluebird<any>' is not comparable to type 'Promise<any>'.                                              
        Property '[Symbol.toStringTag]' is missing in type 'Bluebird<any>'.         

рдЗрд╕реЗ #10831 рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛

readonly [Symbol.toStringTag]: 'Promise';

рд╕рд╛рде рд╣реА, рдПрдХ ES6 рдкреНрд░реЙрдорд┐рд╕ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдЪрд╛рд▓ рдЪрд▓реА

return new Promise.resolve(bluebirdPromise)

@jmendiara рдЬреИрд╕рд╛ рдХрд┐ #10831 рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдмреНрд▓реВрдмрд░реНрдб рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ readonly [Symbol.toStringTag] рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ bluebird.d.ts рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИ: рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдкреНрд░реЙрдорд┐рд╕ рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП readonly [Symbol.toStringTag] , рддреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдмреНрд▓реВрдмрд░реНрдб рдФрд░ рдмреНрд▓реВрдмрд░реНрдб.d.ts рдореЗрдВ рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмреНрд▓реВрдмрд░реНрдб рдФрд░ рджреЗрд╢реА рд╡рд╛рджреЛрдВ (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ) рдХреЗ рдмреАрдЪ рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
FYI рдХрд░реЗрдВ: рдЖрдк Promise.resolve рдмрд┐рдирд╛ new рдХреАрд╡рд░реНрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдЬрдм рдмреНрд▓реВрдмрд░реНрдб рдХрд╛ рд╡рд╛рджрд╛ рдорд╛рдирдХ рдПрдХ рдХреЗ рд▓рд┐рдП рдЖрдмрдВрдЯрд┐рдд рдирд╣реАрдВ рд╣реИред рдФрд░ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмреНрд▓реВрдмрд░реНрдб рдХреЛ Promise.resolve рд╕рд╛рде рдорд╛рдирдХ рдореЗрдВ рдбрд╛рд▓рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддреГрддреАрдп рдкрдХреНрд╖ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЧрд╣рд░рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрднреА-рдХрднреА рдмреНрд▓реВрдмрд░реНрдб рдХреЗ рд╡рд╛рджреЗ рдХреЛ рдмрд┐рдирд╛ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЙрдЪрд┐рдд рд╣реИред
рдмреНрд▓реВрдмрд░реНрдб рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ Symbol.toStringTag рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд▓реВрдмрд░реНрдб рдХреЗ рднрдВрдбрд╛рд░ рдореЗрдВ рдмрд╕ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

https://github.com/petkaantonov/bluebird/issues/1277

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдЦреБрд╢реА рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдзрд╛рдЧрд╛ рдорд┐рд▓рд╛ред рд╕реЛрдЪрд╛ рдореИрдВ рдкрд╛рдЧрд▓ рд╣реЛ рд░рд╣рд╛ рдерд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдореИрдВрдиреЗ SO . рдкрд░ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ @ рдкреНрд░рдХрд╛рд░/рдмреНрд▓реВрдмрд░реНрдб 3.5.3 рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2.2.2 рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВред

@silentorb рдореБрдЭреЗ @types/bluebird-global рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдлрд┐рд░ рдореЗрд░реЗ рдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдХрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╛рджрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ (рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ ES2015 рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ) рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ:

import * as Promise from 'bluebird';
global.Promise = require('bluebird');

рдЙрдкрд░реЛрдХреНрдд рдиреЛрдб рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдореИрдВ 6.10.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред рдЖрдк webpack рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдк _expose-loader_ рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред

@ksnyde : рдореИрдВрдиреЗ рдкрд╣рд▓реЗ @types/bluebird-global рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХрдИ рд▓рд╛рдкрддрд╛ рд╡рд╛рджрд╛ рд╡рд┐рд╡рд░рдг рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореИрдВрдиреЗ @types/bluebird-global рдкреИрдЪ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди @types/bluebird рдХрд╛рдо рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

@silentorb рдХреБрдВрдЬреА рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╛рджрд╛ рд╕рдВрджрд░реНрдн рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рд╣реИ; рдореЗрд░реЗ рд▓рд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐?

рдореБрдЭреЗ рдпрд╣ рдореБрджреНрджрд╛ рднреА рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрди рдХреА рддрд░рд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдмрд▓рддрд╛ рд╣реИ:

type Promise<any> is not assignable to Bluebird<any>

рдЕрдзрд┐рдХ рдирд┐рд░рд╛рд╢ред рдпрд╣ рдЕрдиреНрдп рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рднреА рддреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдЬреИрд╕реЗ sequelize ред

export interface MissionModel extends Sequelize.Model<MissionInstance, MissionAttributes. {
    create(missionAttributes: MissionAttributes, opsions?: Sequelize.CreateOptions): Promise<MissionInstance>;
}

MissionModel рдореЗрдВ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА рдЬрдм рддрдХ рдХрд┐ Promise рдХреЛ * from "bluebird" рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

src\server\models\mission.ts(3,18): error TS2430: Interface 'MissionModel' incorrectly extends interface 'Model<MissionInstance, MissionAttributes>'.
  Types of property 'create' are incompatible.
    Type '(MissionAttributes: MissionAttributes, option?: CreateOptions | undefined) => Promise<MissionInst...' is not assignable to type '(values?: MissionAttributes | undefined, options?: CreateOptions | undefined) => Bluebird<Mission...'.
      Type 'Promise<MissionInstance>' is not assignable to type 'Bluebird<MissionInstance>'.
        Types of property 'then' are incompatible.
          Type '<TResult1 = MissionInstance, TResult2 = never>(onfulfilled?: ((value: MissionInstance) => TResult...' is not assignable to type '{ <U>(onFulfill?: ((value: MissionInstance) => U | PromiseLike<U>) | undefined, onReject?: ((erro...'.
            Type 'Promise<any>' is not assignable to type 'Bluebird<any>'.

@Strate рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ?
рджреВрд╕рд░реЗ рд╡рд┐рдЪрд╛рд░ рдкрд░, рдореИрдВ рдЕрднреА рдПрдХ рдирдпрд╛, рдЕрдзрд┐рдХ-рд▓рдХреНрд╖рд┐рдд рдлрд╝рд╛рдЗрд▓ рдХрд░реВрдБрдЧрд╛ред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рд╕реЗ рдирдлрд░рдд рдХрд░рддрд╛ рд╣реВрдВред рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди tsc рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рдлрд┐рд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЯрд╛рд░рдЧреЗрдЯ рдкреНрд░реЙрдорд┐рд╕ рдореЗрдВ рдмрджрд▓реЗрдВред рдЬреИрд╕реЗ рдХрд┐:

'''
рдХреЙрдиреНрд╕реНрдЯ рдкреА: рдХреЛрдИ рднреА = getPromise ();
рд╡рд╛рдкрд╕реА>рдкреА;
'''

@flyingsky (рдПрдЯред рдЕрд▓ред) рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рд╕рднреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдмреНрд▓реВрдмрд░реНрдб рд╡рд╛рд▓реЗ рдХреЛ рд╕реАрдзреЗ рдореВрд▓ рд╡рд╛рджреЗ рд╕реМрдВрдкрдирд╛ рдХрднреА рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдмреНрд▓реВрдмрд░реНрдб рд╡рд╛рджреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред

рджреВрд╕рд░реА рдУрд░ рдмреНрд▓реВрдмрд░реНрдб рд╡рд╛рджреЛрдВ рдХреЛ рджреЗрд╢реА рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реМрдВрдкрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдареАрдХ рд╣реА рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдХрдИ рд▓реЛрдЧ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рд╣реИрдВ рдХрд┐ рдпрд╣ рдЕрднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдмреНрд▓реВрдмрд░реНрдб рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЬреНрдЮрд╛рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рджреЗрд╢реА рд╕рдВрдЧрдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: [Symbol.toStringTag] рдлрд╝реАрд▓реНрдб рдХреЛ "promise" ред рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ: https://github.com/petkaantonov/bluebird/issues/1277ред рдпрд╣ рдмреНрд▓реВрдмрд░реНрдб рдХреЛ рдореВрд▓ рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реВ...

const p: any = getPromise();
return <Promise>p;

рдпрд╣ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдЧрд▓рдд рд╣реИред

рдореИрдВрдиреЗ @types/bluebird-global рдкреИрдЪ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди @types/bluebird рдХрд╛рдо рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

bluebird-global bluebird рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рддрдм рдореМрдЬреВрдж рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рд╡реИрд╢реНрд╡рд┐рдХ Promise рдЪрд░ рдХреЛ Bluebird рд╕рд╛рде рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдорд╛рд░реНрдЧ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред

рдЕрдЧрд░ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдХреЛрдИ рднреА рдкреНрд░рдЧрддрд┐ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдмреНрд▓реВрдмрд░реНрдб рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдЦреЛрд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВ: https://github.com/petkaantonov/bluebird/issues/1277

рдЕрдЧрд░ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдХреЛрдИ рднреА рдкреНрд░рдЧрддрд┐ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХреГрдкрдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдмреНрд▓реВрдмрд░реНрдб рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдЦреЛрд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ: petkaantonov/bluebird#1277

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреАрдЖрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/petkaantonov/bluebird/pull/1421

@ksnyde - рдЖрдкрдХрд╛ @types/bluebird-global рд╕реБрдЭрд╛рд╡ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд:

import * as Promise from 'bluebird'
global.Promise = Promise

рдЕрдиреНрдпрдерд╛ рдореБрдЭреЗ error TS6133: 'Promise' is declared but its value is never read. рдЬреЛ tsconfig.json рд╕рд╛рде "noUnusedLocals": true рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред

рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ bluebird-global рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

рд╕рдВрдкрддреНрддрд┐ '[Symbol.toStringTag]' 'рдмреНрд▓реВрдмрд░реНрдб' рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИ'

рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ https://github.com/DefinitelyTyped/DefinitelyTyped/pull/10831/files

рдХреНрдпрд╛ рдмреНрд▓реВрдмрд░реНрдб рдХреА рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

+1

@gdpaulmil рдЖрдкрдХреА рд░рдЪрдирд╛рддреНрдордХ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕рдиреЗ рдореБрдЭреЗ рдмреНрд▓реВрдмрд░реНрдб рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
рдкрддрд╛ рдЪрд▓рд╛ https://github.com/petkaantonov/bluebird/pull/1421 11 рджрд┐рди рдкрд╣рд▓реЗ рдорд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдВрддрддрдГ Symbol.toStringTag рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛! рдореИрдВ

рдмрджрд▓реЗ рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ #10831 рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдмрдорд┐рдЯ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рддреБрд░рдВрдд рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рдХреЛ рдХреЗрд╡рд▓ "Promise" рдХреЛ "Object" рд╕рд╛рде рд╕реНрд╡реИрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рддреБрд░рдВрдд рдЗрд╕рдХреА рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдХрд░реВрдВрдЧрд╛ред рдореИрдВ

@lhecker рдиреЗ рдпрд╣ рд╕рдм рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП #35353 рдмрдирд╛рдпрд╛!

рдЕрд░реЗ, рдореИрдВ рдЖрдк рд╕рднреА рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ @types/bluebird v3.5.27 рдореЗрдВ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдм рдЖрдк рдЗрди рд╕рднреА рдмреНрд▓реВрдмрд░реНрдбреНрд╕ рдХреЛ рдЗрди рд╕рднреА рд╡рд╛рджреЛрдВ рдХреЛ рд╕реМрдВрдкрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.2 рдпрд╛ рдирдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред (#34805 рджреЗрдЦреЗрдВ)

рдкреАрдПрд╕: рдмреНрд▓реВрдмрд░реНрдб рдкреАрдЖрд░ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ @JoshuaKGoldberg рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ

рд╣реИ:

import * as Promise from 'bluebird';
global.Promise = require('bluebird');

es2017 рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рд▓рд╛рдЧреВ рд╣реИ?

рдЕрдиреНрдп рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ рдФрд░ рдЬреНрдЮрд╛рдкрди рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ ... рдЕрдиреБрд░реЛрдз-рд╡рд╛рджрд╛, knex, ... рдЖрдкрдиреЗ рдЕрднреА рдЗрд╕ рдЕрджреНрдпрддрди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рддреЛрдбрд╝ рджрд┐рдП рд╣реИрдВред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣рд░ рдЬрдЧрд╣ рдмрдХрд╡рд╛рд╕ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдлреЗрдВрдХ рд░рд╣рд╛ рд╣реИ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.3, 3.4, 3.5 ... рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред

рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдмреАрдмреА рдХреЗ рд▓рд┐рдП рдореЗрд░реА рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╛рджрд╛ рд╡рд╕реНрддреБ рдХреЛ рд╕реНрд╡реИрдк рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рдордп рдерд╛ред рдореБрдЭреЗ рдРрд╕реЗ рдХрд┐рд╕реА рднреА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬрд╣рд╛рдВ рдПрдХ рдЪреАрдЬ рджреВрд╕рд░реА рдЪреАрдЬ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдереАред

@jacklinton рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИрдВ рдХрд┐ рд╕рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдкреИрдХреЗрдЬ рдЕрднреА рднреА "рдмрдХрд╡рд╛рд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ" рдХреЗ рдмрд┐рдирд╛ рджрд┐рдП рдЧрдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рдирд╡реАрдирддрдо рдмреНрд▓реВрдмрд░реНрдб рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз-рд╡рд╛рджрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ: https://github.com/lhecker/request-promise-sample
рдЪреВрдВрдХрд┐ рдореИрдВ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдПрдХ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЬрд╛ рд░рд╣реЗ рдореБрджреНрджреЛрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдпрд╣ рдЬрд╛рдирдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд╕рднреА рдкреИрдХреЗрдЬ рдЕрдк рдЯреВ рдбреЗрдЯ рдХреЗ рд╕рд╛рде
Error:(19, 3) TS2741: Property '[Symbol.toStringTag]' is missing in type 'Bluebird<string[]>' but required in type 'Bluebird<string[]>'.
рдЕрдЧрд░ рдореИрдВ @types/bluebird рд╣рдЯрд╛ рджреВрдВ рддреЛ рдпреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреВрд░ рд╣реЛ рдЬрд╛рдПрдВрдЧреАред рдореЗрд░реЗ рдкрд╛рд╕ рдЬреЛ рд╕рдордп рд╣реИ рдЙрд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдиреНрдп рд╕рднреА рдкреИрдХреЗрдЬ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрднреА рддрдХ рдкрдХрдбрд╝реЗ рдирд╣реАрдВ рдЧрдП рд╣реИрдВред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХреНрдиреЗрдХреНрд╕ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдкрд░рд╛рдзреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдпрд╣ рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрдХрдбрд╝ рд▓реЗрддрд╛ рд╣реИред

рдпрд╣ рддреНрд░реБрдЯрд┐ рдзреНрд╡рдирд┐ рдХрд░рддреА рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдиреЗ @types/bluebird рджреЛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рд╣реИрдВред рдЖрдкрдХреЛ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЙрд╕ рдкреЗрдбрд╝ рдХреЛ рд╕рдорддрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╣реЛред

knex 0.17.3 @types/bluebird рдЯрд╛рдЗрдкрд┐рдВрдЧ btw рдХреЗ рдирд╡реАрдирддрдо 3.5.27 рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ knex рдХрд╛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдкрдХреА @types/bluebird рдХреА рджреВрд╕рд░реА рдкреНрд░рддрд┐ рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╣реИ: рдпрд╣ рднреА 3.5.27 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрддреНрддрд░рджрд╛рдпреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @lhecker ред рдореЗрд░рд╛ рдорддрд▓рдм рдЖрд▓реЛрдЪрдирд╛рддреНрдордХ рдЖрд╡рд╛рдЬрд╝ рдХрд░рдирд╛ рдирд╣реАрдВ рдерд╛, рдореИрдВ рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдкрд░ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рд╕рднреА рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред Bluebird рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рдЕрдкрдбреЗрдЯ рдХреЛ рдЗрддрдиреА рдЬрд▓реНрджреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕ рдлреВрд▓рд╛ рд╣реБрдЖ рдореЛрдиреЛрд▓рд┐рде рдХреЛ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЗрд╕реЗ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

@lhecker рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдЕрдиреБрд░реЛрдз-рд╡рд╛рджрд╛-рдирдореВрдирд╛ рдкреБрдирдГ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ

@VictorioBerra рдЪрд╛рд▓ рдХреЗ рд╕рд╛рде

import * as Promise from 'bluebird';
global.Promise = require('bluebird');

рдореБрдЭреЗ Node.js 12 рдкрд░ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ:

рд╡реИрд╢реНрд╡рд┐рдХред рд╡рд╛рджрд╛ = рд╡рд╛рджрд╛;
рдЯрд╛рдЗрдк 'рдЯрд╛рдЗрдкрдСрдл рдмреНрд▓реВрдмрд░реНрдб' рдореЗрдВ 'рдлрдВрдХреНрд╢рди' рдЯрд╛рдЗрдк рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг рдирд╣реАрдВ рд╣реИрдВ: рдЕрдкреНрд▓рд╛рдИ, рдХреЙрд▓, рдмрд╛рдЗрдВрдб, рд▓реЗрдВрде, рдФрд░ 4 рдФрд░ред

рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ v3.7.4, рдмреНрд▓реВрдмрд░реНрдб v3.7.2 рдФрд░ @types/bluebird-global v3.5.12 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@bennyn рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рдХреЛрдб рдирд╣реАрдВ рд╣реИред рдореИрдВ рдорд╛рдлреА рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рдЕрдиреБрд░реЛрдз-рд╡рд╛рджрд╛ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ред
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк 3.5.29 рдкрд░ @types/bluebird рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ @bennyn рдЬреИрд╕реА рд╣реА рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИ, рд╕рднреА рдмреНрд▓реВрдмрд░реНрдб, @ рдкреНрд░рдХрд╛рд░/рдмреНрд▓реВрдмрд░реНрдб-рдЧреНрд▓реЛрдмрд▓ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд▓реВрдмрд░реНрдб 3.7.2 рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХрдорд╛рддреНрд░ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.6 рдмреНрд▓реВрдмрд░реНрдб рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред

рдРрдк рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рдкрд░ рдореИрдВ рджреЗрд╢реА рдкреНрд░реЙрдорд┐рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдмреНрд▓реВрдмрд░реНрдб рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдиреЗрдЯрд┐рд╡ рдкреНрд░реЙрдорд┐рд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд▓реВрдмрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

import * as Bluebird from "bluebird";
global.Promise = Bluebird;

new Promise((resolve, reject) => {
  // this is actually a Bluebird object
});

рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдЕрдкрдиреА рдУрд░ рд╕реЗ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ
рдореИрдВрдиреЗ рдЕрдкрдиреА рдиреНрдпреВрдирддрдо request-promise-sample рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмрд┐рд▓реНрдХреБрд▓ 100% рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...

  • Bluebird рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ global.Promise рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ
  • рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЕрдиреБрд░реЛрдз-рд╡рд╛рджреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • Bluebird рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ Promise рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ (рдЬреЛ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ)

_рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд┐рд╖рдп-рд╡рд╕реНрддреБ рд╕реЗ рдкрд░реЗ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред_
рдЙрдкрд░реЛрдХреНрдд рдЪрд░реНрдЪрд╛ рдСрдл-рдЯреЙрдкрд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЯрд┐рдХрдЯ рдмреНрд▓реВрдмрд░реНрдб рд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬреЛ ES6/рджреЗрд╢реА рд╡рд╛рджреЛрдВ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рддрдп рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЛ рдмреНрд▓реВрдмрд░реНрдб рдХреЗ рд╕рд╛рде @types/[email protected] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп https://github.com/DefinitelyTyped/DefinitelyTyped/issues/42084 рджреЗрдЦреЗрдВред

@lhecker
рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
Annotation 2020-03-21 084422

@types/[email protected] рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рднреА рдХреЛрдИ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ:
Annotation 2020-03-21 084750

рд╕рдВрд╢реЛрдзрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ:
https://github.com/chebum/request-promise-sample

@chebum рдКрдкрд░ рджреА Bluebird<T> рд▓реМрдЯрд╛ рд░рд╣реЗ рд╣реИрдВред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк _must_ рдПрдХ async рдлрд╝рдВрдХреНрд╢рди рд╕реЗ Promise<T> рдкреНрд░рдХрд╛рд░ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рдереЛрдбрд╝реА рд╕реА рднреА рдЫреВрдЯ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  1. @types/bluebird-global рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
  2. рдЧреНрд▓реЛрдмрд▓ рдкреНрд░реЙрдорд┐рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдВ: window.Promise = Bluebird as any;
  3. рд▓рд┐рдЦреЗрдВ: async function testFn(): Promise<void>
  4. рд╡реИрд╢реНрд╡рд┐рдХ Promise<T> рдкреНрд░рдХрд╛рд░ рдЕрдм рд▓рдЧрднрдЧ Bluebird<T> рд╕рдорд╛рди рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреНрд▓реВрдмрд░реНрдб рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА Symbol.species рддреНрд░реБрдЯрд┐ рдЖрджрд┐ рд╕реЗ рдЯрдХрд░рд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рдЯрд┐рдХрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ #42084 рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

natejgardner picture natejgardner  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

[рдбреА3] рдореЙрдбреНрдпреВрд▓ 'рдбреА3-рд╕реНрдХреЗрд▓' рдкрд╣рд▓реЗ рд╣реА 'рдЗрдВрдЯрд░рдкреЛрд▓реЗрдЯрдХреВрд▓' рдирд╛рдо рдХреЗ рдПрдХ рд╕рджрд╕реНрдп рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рдЪреБрдХрд╛ рд╣реИред рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреБрдирдГ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
matt-senseye picture matt-senseye  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ArtemZag picture ArtemZag  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

demisx picture demisx  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Zzzen picture Zzzen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ