VS
Size: a a a
VS
VS
NK
object spread, ведь нет ...rest, а мне очень часто бывает нужно все не известные свойста передать вложенному элементу, т.е. без всяких omit и т.д (не уверен, что понятно то, что я написал). как вы это сейчас делаете?AM
AM
IS
// Simple flow
interface HOC<TIn, TOut> {(p: TIn): TOut;
}
function flow<TIn, TOut, T0>(p0:HOC<TIn, T0>, p1:HOC<T0, TOut>): HOC<TIn, TOut> { return (v: TIn) => {const r: TOut = p1(p0(v));
return r;
}
}
// This works as expected
const a = flow( // 'a' has type
(e: number) => ({ // type of 'e' should be seta: 10
}),
(p) => ({ // 'p' has typeb: 10,
prev: p
})
);
// ---- BUT THIS WILL NOT WORK
const b = flow( // BAD: 'b' has type HOC<number, any>
(e: number) => Object.assign({ // 'e' type should be seta: 10
}),
(p) => Object.assign( // BAD: 'p' has type `any
{ b: 10 },p
)
);
IS
IS
IS
Object.assign({}, {x: 1}) работаетAK
// Simple flow
interface HOC<TIn, TOut> {(p: TIn): TOut;
}
function flow<TIn, TOut, T0>(p0:HOC<TIn, T0>, p1:HOC<T0, TOut>): HOC<TIn, TOut> { return (v: TIn) => {const r: TOut = p1(p0(v));
return r;
}
}
// This works as expected
const a = flow( // 'a' has type
(e: number) => ({ // type of 'e' should be seta: 10
}),
(p) => ({ // 'p' has typeb: 10,
prev: p
})
);
// ---- BUT THIS WILL NOT WORK
const b = flow( // BAD: 'b' has type HOC<number, any>
(e: number) => Object.assign({ // 'e' type should be seta: 10
}),
(p) => Object.assign( // BAD: 'p' has type `any
{ b: 10 },p
)
);
AK
AK
AK
NK
AK
AK
NK
VS
IS