рдмреНрд▓реВрдмрд░реНрдб 3.0 рдкрд░рд┐рднрд╛рд╖рд╛ рдорд╛рдирдХ es6 рд╡рд╛рджрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЖрдмрдВрдЯрд┐рдд рдирд╣реАрдВ рд╣реИ:
Types of property 'then' are incompatible.
Type 'Bluebird<any>' is not assignable to type 'Promise<any>'.
/рд╕реАрд╕реА @рд▓рд╣реЗрдХрд░
@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
рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд▓реВрдмрд░реНрдб рдХреЗ рднрдВрдбрд╛рд░ рдореЗрдВ рдмрд╕ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рдЦреБрд╢реА рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдзрд╛рдЧрд╛ рдорд┐рд▓рд╛ред рд╕реЛрдЪрд╛ рдореИрдВ рдкрд╛рдЧрд▓ рд╣реЛ рд░рд╣рд╛ рдерд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдореИрдВрдиреЗ 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
рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
@types/[email protected]
рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рднреА рдХреЛрдИ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ:
рд╕рдВрд╢реЛрдзрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ:
https://github.com/chebum/request-promise-sample
@chebum рдКрдкрд░ рджреА Bluebird<T>
рд▓реМрдЯрд╛ рд░рд╣реЗ рд╣реИрдВред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк _must_ рдПрдХ async рдлрд╝рдВрдХреНрд╢рди рд╕реЗ Promise<T>
рдкреНрд░рдХрд╛рд░ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рдереЛрдбрд╝реА рд╕реА рднреА рдЫреВрдЯ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
@types/bluebird-global
рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВwindow.Promise = Bluebird as any;
async function testFn(): Promise<void>
Promise<T>
рдкреНрд░рдХрд╛рд░ рдЕрдм рд▓рдЧрднрдЧ Bluebird<T>
рд╕рдорд╛рди рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреНрд▓реВрдмрд░реНрдб рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА Symbol.species
рддреНрд░реБрдЯрд┐ рдЖрджрд┐ рд╕реЗ рдЯрдХрд░рд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рдЯрд┐рдХрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ #42084 рдХрд░реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@silentorb рдореБрдЭреЗ
@types/bluebird-global
рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдлрд┐рд░ рдореЗрд░реЗ рдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдХрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╛рджрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ (рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ ES2015 рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ) рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ:рдЙрдкрд░реЛрдХреНрдд рдиреЛрдб рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдореИрдВ 6.10.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред рдЖрдк webpack рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдк _expose-loader_ рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред