첫 번째 약속 유형이 angular.IPromise<Foo>
인 연결 약속을 반환하는 클래스가 있고 두 번째 약속은 angular.IPromise<Bar>
유형으로 해결됩니다.연결 약속을 반환하는 함수의 유형 반환
왜 반환 유형이 doSomething
angular.IPromise<Bar>
입니까?
반환 형식이 angular.IPromise<Foo>
일 것이라고 생각했을 것입니다. 그 이유는 이것이 함수에서 반환 된 첫 번째 이유이기 때문입니다. 나는 then()
이 약속을 되 돌렸고 그것에 의해 반환되는 것을 감싸 줄 것이라고 알고 있습니다. 그러나 이것은 여전히 저를 혼란스럽게합니다.
import { Something } from '../somewhere';
import { Bar } from '../somewhereelse';
class Test {
doSomething(): angular.IPromise<Bar> {
return Something.getFoo() // getFoo() return type angular.IPromise<Foo>
.then(() => {
let x: Bar = {};
return x;
});
}
}
어떤 도움을 주시면 감사하겠습니다. 필요한 경우 더 많은 코드를 제공하는 것보다 기쁘게 생각합니다.
는 어떻게 반환 형식이'각도 것이라고 파악 않습니다.IPromise'당신이 반환 값의 타입으로'Bar'를 선언한다면? typescript는 * runtime * 리턴 값을 알지 못한다. * 정적으로 코드를 분석한다. –
반환 유형은 각도입니다. 정확도 - 쉽게 테스트 할 수 있습니다. 반환 유형이 각도가 될 것으로 기대하고있었습니다. 전달이 이므로 doSomething() 함수가 반환 한 첫 번째 것입니다. –
'.then'은'.map'이'Array'에 대해서'Promise'입니다. –