내가 가지고 다음의 예 기능 (Ramda에서입니다 구성) :이처럼 사용하려고타이프 라이터 타입 추론 문제 함수가 반환이 작동 할 때
declare function compose<V0, T1, T2>(fn1: (x: T1) => T2, fn0: (x0: V0) => T1): (x0: V0) => T2;
interface User {
id: number
}
function fn1(input: any): User {
return {id: 1};
}
function fn2<I, O>(fn: (i: I) => O): (i: I) => O {
return (data) => {
try {
return fn(data);
} catch (e) {
return undefined
}
};
}
가 :
이compose(fn2(user => user.id), fn1);
타이프 라이터가를 던졌습니다 다음과 같은 오류 :
TS2339:Property 'id' does not exist on type '{}'.
사람이 알것 않는다 w, TypeScript가 user
에 적합한 유형을 추론하도록 도와 주려면 어떻게해야합니까?
compose<any, User, number>(fn2(user => user.id), fn1);
UPDATE를 , 적어도 버그는 아닙니다. [이 주석] (https://github.com/Microsoft/TypeScript/issues/15680#issuecomment-307571917)을 참조하십시오. – Deftomat