나는 nodejs/typescript 2 프로젝트를 가지고 있으며 es6-promise 패키지를 사용합니다. 이제 typescript에서 ES6을 직접 타겟팅 할 수 있으므로 추가 패키지를 제거하고 싶습니다.ES6 Promise/Typescript 및 Bluebird 약속
그래서 es6-promise 패키지를 제거하고 es6을 대상으로 tsconfig.json을 변경했습니다.
{
"compilerOptions": {
"target": "es6",
// ...
}
}
많은 제 3 자 패키지는 블루 버드의 약속을 사용하지만 기본 ES6는 GitHub의
- bluebird 3.0 definifion is not assignable to ES6 Promises
- Provide a way to load Bluebird globally in es6 compilation target.
- Add Symbol.toStringTag to promise instance 에 다른 게시물에 명시된 약속에 약속 정의는 호환되지 않습니다
S o 다음 오류가 발생합니다.
TS2322 : '블루 버드'유형을 '약속'유형에 지정할 수 없습니다. 'Bluebird'유형에 '[Symbol.toStringTag]'속성이 없습니다.
npm @types/bluebird-global에 다른 유형 패키지가 있습니다. 블로그 게시물 중 하나에서 사용자가 @types/bluebird 대신에 사용하도록 권장하지만 일부 타사 패키지 (예 : sequelize typings) 참조 bluebird 및 bluebird-global이 아니므로 bluebird의 누락 된 입력에 대해 다른 오류가 발생합니다.
이 기능을 작동시키는 좋은 해결책은 무엇입니까?
'bluebird-patch.d.ts' 파일에'인터페이스 Bluebird {[Symbol.toStringTag] : string}'을 넣으려고 할 수 있습니까? – Paleo
감사하지만 이것은 나를 위해 작동하지 않습니다. – dknaack
결국이 패키지는 Bluebird 약속을 반환하므로 Bluebird 패키지 및 정의 파일을 프로젝트에 포함해야합니다. "이름 바꾸기"블루 버드 약속 약속 "약속"네이티브 약속은 정말 혼란스러워 할 수 있습니다. (심지어 그들은 동일한 API를 가지고 있습니다.) 플러스 나는 이것을 어떻게해서든지 보지 못합니다. :) – deKajoo