Re:Currying in JavaScript
by nothrabannosir on Sunday July 19, 2015 @07:17PM
(#9913240)
Careful:
and poof there goes your type safety. Optional typing (flow and TS) is making inroads into JS. If you want to bet on them (or any other JS inspecting tools), make sure you use this:
Or, in ES6 or TypeScript:
This helps computers understand your code.
[ Parent
| on HN ]
Re:Currying in JavaScript
by chrisseaton on Sunday July 19, 2015 @07:53PM
(#9913328)
Can these typing algorithms not use the same transformation themselves to make sense of a call to get? I know there's a string there but it's literal.
Re:Currying in JavaScript
by nothrabannosir on Sunday July 19, 2015 @08:09PM
(#9913376)
Absolutely! If enough people do this, the tooling might eventually adapt.
However, it's the kind of bet I wouldn't go long on. Today, TS automatically (and correctly) infers the type of objs.map(x => x.foo). I suppose the same holds true for flow. This is not hypothetical; try this in http://www.typescriptlang.org/Playground
var objects = [
{
id: 1,
name: "Foo"
},
{
id: 2,
name: "Bar"
}
];
var look_at_my_type = objects.map(x => x.id);
Note; this is 100% JS, just passed through a TS compiler.Check the type of look_at_my_type (e.g. start typing its name at the bottom, see what the popover says): number[].
Replace it by get('id') (with definition function get(name: string) { return x => x[name]; }), and the type becomes any[].