bluebird 3.0ã®å®çŸ©ã¯ãæšæºã®es6Promiseå®çŸ©ã«å²ãåœãŠãããšã¯ã§ããŸããã
Types of property 'then' are incompatible.
Type 'Bluebird<any>' is not assignable to type 'Promise<any>'.
/ cc @lhecker
@Strate tscã®æ®ãã®åºåãæçš¿ã§ããŸããïŒ ãããŠãããŒã«ã«ã®bluebird.d.ts
ãéããŠã ïŒ10831ãããã®1è¡ãè¿œå ããŠã¿ãŠãã ããã ããã§åé¡ã¯è§£æ±ºããŸãããïŒ
å šäœã®ãšã©ãŒïŒ
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
ãã¡ã€ã«ã ãã®è¡ãè¿œå ããŠã圹ã«ç«ã¡ãŸããã
ããããªãã»ã©...ãã®è¡ãããã«ãªãããã ãšæãonFulfill
ãšonReject
äž¡æ¹ããåãåU
ãè¿ãå¿
èŠããããŸãã 誰ããnpmãšãã®dtãªããžããªã§ãããä¿®æ£ã§ããã°ãšãŠãã¯ãŒã«ã§ãããã
ãããŸã§ã®éã .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
es6ã®å®£èšãšäºææ§ã®ããããã«å¥ã®then
宣èšãbluebird.d.ts
è¿œå ããããšã§ãä¿®æ£ã§ããããã§ãã
ãããããŒ...ããããªããã ãã£ãšäŒæ©ããã»ãããããšæããŸãã ð
ããã§ããã®éã«äœããã¹ããã«ã€ããŠã®ç§ã®ã³ã¡ã³ããç¡èŠããŠãã ããïŒãšã«ããããããæ¬ ããŠããã®ã§ããããŠç§ã¯æ¬åœã«ãã®ãããªåºæ¬çãªãµããŒã以å€ã®ããšãããæéããªãããå°ãªããšãããã¹ãã§ã¯ãªããã®ã§ã PRãéä¿¡ããŠããããã®åãäž¡æ¹ã®ãããžã§ã¯ãã«è¿œå ã§ããŸãã ð
@lheckerå®äº:)
ã¡ãªã¿ã«ãçŽæãåãå
¥ãããšãã¯åžžã«PromiseLike
ã䜿çšããããšããå§ãããŸãã å®è£
ãããŠããæå°éã®promiseã€ã³ã¿ãŒãã§ã€ã¹ãä¿èšŒããããããã»ãšãã©ã®promiseãåãå
¥ããããšãã§ããŸãã 次ã«ãéžæã®promiseã¿ã€ããè¿ãããšãã§ããŸããããã«ãããå€ãã®è¿œå ã¡ãœãããããBluebird<T>
ããã«å³å¯ã«ãªããŸãã é·ãéãES6ã·ã³ãã«ãES6ãããã¹ã¿ã€ãã«è¿œå ããããããç§ã®ãããã¹ã¯ã©ããå²ãåœãŠå¯èœã§ã¯ãããŸããã§ããã
ãã®å Žåã PromiseLike
ã䜿çšãã@blakeembreyã¯çãã§ã¯ãããŸãããããã¯ãPromiseLikeã«ãäºææ§ã®ãªãããŒãžã§ã³ã®thenãããããã§ãã
æ®å¿µãªãããPromiseã®åã¯TSããŒãžã§ã³2ã§å€æŽãããããããããã®åã¯å¯Ÿå¿ããªããªããŸããïŒ https ïŒ
ãã®åé¡ãåéã§ããŸããïŒ
ããã«é¢ããæŽæ°ã¯ãããŸããïŒ
@OliverJAsh @ arg20ããªããã¡ã¯ããªãã®åé¡ã®èªå·±åçŸå¯èœãªãã¹ãã±ãŒã¹ãæäŸã§ããŸããïŒ
@Strateããã«ç§ã®ãšã©ãŒããããŸãã typescript 2.0.3ïŒlib.es6.d.tsïŒãš@ types / bluebirdv3.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>'.
Bluebird PromiseãES6promiseã«ãã£ã¹ãããããšãããšã次ã®ããã«ãªããŸãïŒ 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';
ãŸããES6Promiseã«å€æããããšã§ããŸããããŸãã
return new Promise.resolve(bluebirdPromise)
@jmendiaraã¯ïŒ readonly [Symbol.toStringTag]
ããªãããããããbluebird.d.tsã«è¿œå ããããšã¯æããã«ééã£ãŠããŸããå
¥åã¯å®äžçãè¡šãå¿
èŠããããŸãã
Promiseæšæºã§readonly [Symbol.toStringTag]
ãå¿
èŠãªå Žåã¯ãbluebirdèªäœãšbluebird.d.tsã«ãè¿œå ããå¿
èŠããããŸãã ãã«ãŒããŒããšãã€ãã£ããããã¹ã®éã®å€æãæ確ã«äœ¿çšããå¿
èŠãããããã§ãïŒããã¯æ¬åœã«è¿·æã§ãïŒã
åèïŒ new
ããŒã¯ãŒããªãã§Promise.resolve
ã䜿çšã§ããŸãã
ãã«ãŒããŒãã®çŽæãæšæºã®çŽæã«å²ãåœãŠãããªããšãã«åé¡ã«ã¶ã€ãã£ãã ãããŠç§ã®å Žåããã«ãŒããŒãã¯ãµãŒãããŒãã£ã®ãªããžã§ã¯ãã®å¥¥æ·±ãã«ããããã Promise.resolve
ã§æšæºã«ãã£ã¹ãããããšã¯äžå¯èœã§ãã ãããã£ãŠãå€æããã«æšæºã®ãã®ã«å²ãåœãŠãããšãã§ãããšãããã«ãŒããŒãã®çŽæãæã£ãŠããããšãåççã§ããå ŽåããããŸãã
bluebirdã®ã€ã³ã¹ã¿ã³ã¹ã«Symbol.toStringTag
ãè¿œå ããããã«ãbluebirdã®ãªããžããªã«æ©èœãªã¯ãšã¹ããäœæããŸããã
ããã«é¢ããæŽæ°ã¯ãããŸããïŒ
ãã®ã¹ã¬ãããèŠã€ããŠããã£ãã§ãã ç§ã¯æ°ãçã£ãŠãããšæã£ãã ããã«å¯Ÿããä¿®æ£ãæ¬åœã«èŠããã§ãã SOã§åé¡ã®è©³çŽ°ã説æããŸãã
@ types / bluebird3.5.3ãšTypeScript2.2.2ã§ãã®åé¡ãçºçããŠããŸãã
@silentorb @types/bluebird-global
åå®çŸ©ã䜿çšããã³ãŒãã®å
é ã«ä»¥äžãè¿œå ããŠãã°ããŒãã«promiseå®çŸ©ïŒES2015ãã©ãããã©ãŒã ãã¿ãŒã²ããã«ããŠããå Žåã«ãããŸãïŒããªãŒããŒã©ã€ãããããšã§ããããæ©èœãããŸãããå®è¡ãšã³ããªãã€ã³ãïŒ
import * as Promise from 'bluebird';
global.Promise = require('bluebird');
äžèšã¯ããŒãç°å¢ã§æ©èœããŸãïŒç§ã¯6.10.xã䜿çšããŠããŸãïŒã webpackã䜿çšããŠããå Žåã¯ã_expose-loader_ã®ãããªãã®ã䜿çšããå¿ èŠããããããããŸããã
@ksnyde ïŒä»¥åã«@types/bluebird-global
ãè©ŠããŠã¿ããšãããè€æ°ã®Promiseã®è©³çŽ°ãæ¬ èœããŠããŸããã @types/bluebird-global
ããããé©çšããããšãæ€èšããŸãããã @types/bluebird
æ©èœãããæ¹ãããã§ãããã
@silentorbéèŠãªã®ã¯ãã°ããŒãã«ãªPromiseåç §ããªãŒããŒã©ã€ãããããšã§ãã ç§ã«ãšã£ãŠã¯åé¡ãªãåäœããŸãã ããã¯èšã£ãŠããç®±ããåºããŠããã«æ©èœããã°ç¢ºãã«ããã®ã§ããããã®ãœãªã¥ãŒã·ã§ã³ã§åŸ ã€å¿ èŠã¯ãããŸããã
ããã«ã€ããŠäœãé²å±ã¯ãããŸããïŒ
ç§ããã®åé¡ãæ±ããŠããŸãã èŠçŽãããšã次ã®ãããªãšã©ãŒã«ãªããŸãã
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"
ãšããŠã€ã³ããŒããããªãéãã MissionModel
ã«ã¯æ¬¡ã®ãšã©ãŒããããŸãã
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ãæž¡ãã«ã¯ãããã«å€ãã®äœæ¥ãè¡ãå¿ èŠããããŸãã ç§ãä¿®æ£ããç°¡åãªæ¹æ³ã¯ãanyåã®äžæå€æ°ãäœæããããšã§ãã 次ã«ããããã¿ãŒã²ããã®Promiseã«å€æããŸãã ãã®ãããªïŒ
'' '
const pïŒany = getPromiseïŒïŒ;
æ»ã
'' '
@flyingsky ïŒ Bluebirdã®Promiseã¯ãã€ãã£ãã®å®è£ ã«ã¯ååšããªãæ¡åŒµæ©èœãæäŸããããããã€ãã£ãã®
äžæ¹ãBluebirdã®çŽæããã€ãã£ãã®çŽæã«å²ãåœãŠãããšã¯å¯èœã§ãããåœç¶ã®ããšã§ãã ããããããã«ããå€ãã®äººã¯ãããã¯ä»ããããŸãããã¯ãã ãšããå°è±¡ãåããŠããŸãããããã§ã¯ãªãããšã¯ééããããŸããã
ããã¯ãBluebirdãäžè¬çã«ç¥ãããŠãããã¹ãŠã®é¢æ°ããã€ãã£ãäºæã®æ¹æ³ã§å
¬éããäžæ¹ã§ãç¹å®ã®1ã€ã®ãã£ãŒã«ããå
¬éããªãããã§ãã [Symbol.toStringTag]
ãã£ãŒã«ãã¯"promise"
ãŸãã ãããåç
§ããŠãã ããïŒ https ïŒ
const p: any = getPromise();
return <Promise>p;
ããã¯æè¡çã«å®å šã§ã¯ãªããæ£ãããããŸããã
@types/bluebird-global
ã«ããããé©çšããããšãæ€èšããŸãããã@types/bluebird
æ©èœãããæ¹ãããã§ãããã
bluebird-global
ã¯ã bluebird
ã¯ãŸã£ããç°ãªããŠãŒã¹ã±ãŒã¹ãæäŸããŸããã°ããŒãã«Promise
å€æ°ãBluebird
ã§äžæžããããšããéåžžã«ã¿ã€ãã®å®å
šã§ãªãã«ãŒãã䜿çšããå Žåã«ååšããŸãã
ãã®å·ã®èª°ããé²æç¶æ³ã確èªãããå Žåã¯ããã§ã«è¿°ã¹ãBluebirdã®å·ã®PRãéãããšããå§ãããŸãïŒ //github.com/petkaantonov/bluebird/issues/1277
ãã®å·ã®èª°ããé²æç¶æ³ã確èªãããå Žåã¯ããã§ã«è¿°ã¹ãBluebirdã®å·ã®PRãéãããšããå§ãããŸãïŒpetkaantonov / bluebirdïŒ1277
ãã®PRãäœæãããããã§ãïŒ https ïŒ
@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]'ãã¿ã€ã 'Bluebirdã«ãããŸãã
'
ãã®è¡ãè¿œå ãããšãåé¡ãä¿®æ£ãããŸãhttps://github.com/DefinitelyTyped/DefinitelyTyped/pull/10831/files
ãã«ãŒããŒãã®ã¿ã€ãã³ã°ãå€æŽããã«ããŒã«ã«ã§ä¿®æ£ããæ¹æ³ã¯ãããŸããïŒ
+1
@gdpaulmil建èšçãªã³ã¡ã³ããããããšãïŒ
ããã¯ç§ã«Bluebirdã®ç¶æ³ãèŠãããã«ä¿ããŸããã
https://github.com/petkaantonov/bluebird/pull/1421ã11æ¥åã«ããŒãžãããããšãå€æããŸããSymbol.toStringTag
ãµããŒããè¿œå ãããŸããã ð
ããã¯ãïŒ10831ãåéä¿¡ããããšã§ããã®åé¡ãããã«ä¿®æ£ã§ããããšãæå³ããŸãã "Promise"
ã"Object"
ãšäº€æããã ãã§æžã¿ãŸãã ããã«æ£çŽã«ã¬ãã¥ãŒããããšæããŸãã ð
@lhecker ãããããã¹ãŠã¯ãªã¢ããããã«ïŒ35353ãäœæããŸããïŒ
ããããã®åé¡ã¯@types/bluebird
v3.5.27ã§ä¿®æ£ãããããšãçããã«ãç¥ããããããšæããŸãã
ããã§ãããããã¹ãŠã®Bluebirdãããããã¹ãŠã®Promiseã«å²ãåœãŠãããšãã§ããããã«ãªããŸããã ð
ãã ããããã«ã¯TypeScript3.2以éã䜿çšããå¿
èŠããããŸãã ïŒïŒ34805ãåç
§ïŒ
PSïŒ BluebirdPRãæ±ã£ãŠããã
ã¯ïŒ
import * as Promise from 'bluebird';
global.Promise = require('bluebird');
es2017ã«ãåŒãç¶ãé©çšã§ããŸããïŒ
以åã®ããŒãžã§ã³ãäŸåé¢ä¿ãšããŠæã£ãŠããŠãã¡ã¢ãåãåããªãã£ãä»ã®ãã¹ãŠã®ããã±ãŒãžãé€ããŠ... request-promiseãknexã...ãã®ã¢ããããŒãã§å€ãã®ã³ãŒããå£ããã ãã§ãã Typescriptã³ã³ãã€ã©ã¯ããããšããã«ãã³ã»ã³ã¹ãšã©ãŒãæããŠããŸããTypescript3.3ã3.4ã3.5 ...ã¯åé¡ã§ã¯ãªãããã§ãã
ããã誰ããå©ãããªããäžã§è¿°ã¹ãããã«ãç§ã¯ã°ããŒãã«ãªPromiseãªããžã§ã¯ããBBã«äº€æããªãã®ãæãç°¡åãªæéã§ããã ãããã®ãå¥ã®ãã®ãšäºææ§ããããšããåé¡ã¯çºçããŠããŸããã
@jacklinton圱é¿ãåãããã¹ãŠã®ããã±ãŒãžããããã³ã»ã³ã¹ãšã©ãŒãã¹ããŒãããããšãªããæå®ãããTypeScriptããŒãžã§ã³ã§ãã«ããããŠããããšã確èªããããã®åäœãã¹ããå®æœãããŠããããšããã§ã«ãåç¥ã ãšæããŸãã
ããšãã°ãææ°ã®Bluebirdã¿ã€ãã³ã°ã§request-promiseãæ©èœããããšã瀺ããããžã§ã¯ãã¯æ¬¡ã®ãšããã§ãïŒ https ïŒ
ç§ã¯ããªãã®åé¡ãåçŸããããšãã§ããªãã®ã§ãããªããèŠãŠããåé¡ã瀺ãæå°éã®äŸãæäŸã§ããã°çŽ æŽãããã§ãããã
ã©ãããå§ããã°ããããç¥ãã®ã¯é£ããã§ãããä»ã®ãã¹ãŠã®ããã±ãŒãžã¯ææ°ã§ãError:(19, 3) TS2741: Property '[Symbol.toStringTag]' is missing in type 'Bluebird<string[]>' but required in type 'Bluebird<string[]>'.
@ types / bluebirdãåé€ãããšããããã®ãšã©ãŒã¯ãªããªããŸãã ç§ãæã£ãŠããæéã§ç§ãäœãããšãã§ããå¯äžã®æšæž¬ã¯ããããã®ã¿ã€ããå¿
èŠãšããä»ã®ãã¹ãŠã®ããã±ãŒãžããŸã è¿œãã€ããŠããªããšããããšã§ãã Knexãåå ã§ããå¯èœæ§ãé«ããšæããŸãããããããŸããã ãã®ããã±ãŒãžã®ä»¥åã®ããŒãžã§ã³ã®ç¬èªã®äŸåé¢ä¿ãååŸããŸãã
ãã®ãšã©ãŒã¯ã2ã€ã®ããŒãžã§ã³ã®@types/bluebird
ã€ã³ã¹ããŒã«ãããŠãããã®ããã«èãããŸãã ãã®ãã¡ã®1ã€ã ãã«ãªãããã«ããã®ããªãŒãå¹³åŠåã§ãããã©ããã確èªããå¿
èŠããããŸãã
knex 0.17.3ã¯ã @types/bluebird
ã¿ã€ãã³ã°ã®ææ°ã®3.5.27ããŒãžã§ã³ã«äŸåããŸãã knexã®ææ°ããŒãžã§ã³ããæã¡ã®å Žåã¯ãå®éã«æ©èœããã¯ãã§ãã
@types/bluebird
çªç®ã®ã³ããŒã«ã€ããŠãåãããšãèšããŸãã3.5.27ã§ããå¿
èŠããããŸãã
@lheckerã«å¯Ÿå¿ããŠããã ãããããšãããããŸãã æ¹å€çã«èãããã€ããã¯ãªãã£ãã®ã§ããè©«ã³ããŸãã ããªãã¯æããã«ããã«äžçæžåœåãçµãã§ããŸããããããŠããã¯ç§ãã¡å šå¡ãé·ãéåŸ ã£ãŠãããã®ã§ãã Bluebirdãå€æŽãå ããåŸããã®ã¢ããããŒããããã«å ¬éããããã«ãå°œåããã ãããããšãããããŸãã ãã®è¥å€§åããã¢ããªã¹ããäœããã®æ¹æ³ã§æ³å®ã©ããã«æ©èœãããããšãã§ããŸãã
@lheckerãªããªã£ãããã§ãã®ã§ã request-promise-sampleãåå ¬éããŠãã ããã ð¢
@VictorioBerraã®ããªãã¯
import * as Promise from 'bluebird';
global.Promise = require('bluebird');
Node.js12ã§æ¬¡ã®ãšã©ãŒãçºçããŸãã
global.Promise = Promise;
ã¿ã€ããtypeofBluebirdãã«ã¯ãã¿ã€ããé¢æ°ããã次ã®ããããã£ããããŸããïŒé©çšãåŒã³åºãããã€ã³ããé·ãããã®ä»4ã€ã
TypeScript v3.7.4ãbluebird v3.7.2ã@ types / bluebird-globalv3.5.12ã䜿çšããŠããŸãã
@bennynã³ãŒãã¯ãããããŸããã ç§ã¯éåžžã«ç³ãèš³ãªãã request-promiseã®åé¡ãä¿®æ£ãããåŸãåé€ããŸããã
3.5.29ã®ææ°ããŒãžã§ã³ã®@types/bluebird
ã䜿çšããŠããããšã確èªããŠãã ããã
@bennynãšåããšã©ãŒãçºçãããã¹ãŠã®bluebirdã@ types / bluebird-globalãããã³TypeScriptã®ææ°ããŒãžã§ã³ã䜿çšãããŸãã
Bluebird3.7.2ãšTypeScript3.6ã®çŸåšã®ããŒãžã§ã³ã§å®è¡å¯èœãªå¯äžã®ãªãã·ã§ã³ã¯ãBluebirdã®åæå®ããŸã£ãã䜿çšããªãããšã®ããã§ãã
ã¢ããªã®ãšã³ããªãã€ã³ãã§ããã€ãã£ãã®Promiseã³ã³ã¹ãã©ã¯ã¿ãŒãBluebirdã«çœ®ãæãããã®åŸããã€ãã£ãã®promiseAPIã䜿çšããŠBluebirdã䜿çšããŸãã
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
ã€ã³ã¿ãŒãã§ã€ã¹ã«å²ãåœãŠãŸãïŒããããã®åé¡ã®åå ã§ãïŒ_ãšã¯ããããã®åé¡ã¯ã¯ããŒãºãããŠããããããã¯å€ã®è°è«ãç¶ããããã«äœ¿çšãã¹ãã§ã¯ãããŸããã_
ãã®ãã±ããã¯ãBluebirdã®PromiseãES6 / native Promisesã«å²ãåœãŠãããªãããšã«é¢ãããã®ã§ãããããäžèšã®èª¬æã¯ãããã¯ããå€ããŠããŸãã ããããäžã«ç€ºããããã«ããã®åé¡ã¯é·ãéä¿®æ£ãããŠããŸãã
Bluebirdã§@types/[email protected]
ã䜿çšããéã«åé¡ãçºçããå Žåã¯ã代ããã«https://github.com/DefinitelyTyped/DefinitelyTyped/issues/42084ãåç
§ããŠ
@lhecker
è¿ä¿¡ããŠãããŠããããšãã ç§ã¯ããªãã®ãããžã§ã¯ããè©ŠããŸãããããããæ©èœããŸããïŒ
@types/[email protected]
ã€ã³ã¹ããŒã«ããŠãã次ã®ãããã«ã圹ç«ã¡ãŸããã
å€æŽããããããžã§ã¯ãã¯ããã§èŠã€ããããšãã§ããŸãïŒ
https://github.com/chebum/request-promise-sample
@chebumäžèšã®ã³ã¡ã³ãã§ã¯ãéåæé¢æ°ãBluebird<T>
è¿ãé¢æ°ãšããŠå
¥åããããšããŠããããšãæ確ã«ãªããŸããPromise<T>
åãè¿ãå¿
èŠããããŸãã
åå®å šæ§ãå°ãæŸæ£ãããå Žåã¯ã次ã®ããšãè¡ãããšãã§ããŸãã
@types/bluebird-global
ãè¿œå ããŸãwindow.Promise = Bluebird as any;
async function testFn(): Promise<void>
Promise<T>
ã¿ã€ãã¯Bluebird<T>
ãšã»ãŒåãã«ãªããBluebirdã®éèŠãªæ©èœããã¹ãŠäœ¿çšã§ããããã«ãªããŸããSymbol.species
ãšã©ãŒãªã©ãçºçããå Žåã¯ããã®ãã±ããã䜿çšããªãã§ãã ãããïŒ42084ã䜿çšããŠãã ããã
æãåèã«ãªãã³ã¡ã³ã
@silentorb
@types/bluebird-global
åå®çŸ©ã䜿çšããã³ãŒãã®å é ã«ä»¥äžãè¿œå ããŠãã°ããŒãã«promiseå®çŸ©ïŒES2015ãã©ãããã©ãŒã ãã¿ãŒã²ããã«ããŠããå Žåã«ãããŸãïŒããªãŒããŒã©ã€ãããããšã§ããããæ©èœãããŸãããå®è¡ãšã³ããªãã€ã³ãïŒäžèšã¯ããŒãç°å¢ã§æ©èœããŸãïŒç§ã¯6.10.xã䜿çšããŠããŸãïŒã webpackã䜿çšããŠããå Žåã¯ã_expose-loader_ã®ãããªãã®ã䜿çšããå¿ èŠããããããããŸããã