TypeScript Version: nightly
Code
declare function one<T>(handler: (t: T) => void): T
var empty = one(() => {}) // inferred as {}, expected
type Handlers<T> = { [K in keyof T]: (t: T[K]) => void }
declare function on<T>(handlerHash: Handlers<T>): T
var hashOfEmpty = on({
test: () => {}
})
// inferred as {test(): void}, expected {test: {}}
Expected behavior:
hashOfEmpty is inferred as {test: {}}
Actual behavior:
hashOfEmpty is inferred as {test(): {}}
TypeScript Version: nightly
Code
Expected behavior:
hashOfEmptyis inferred as{test: {}}Actual behavior:
hashOfEmptyis inferred as{test(): {}}