Comments (5)
I think you could combine D.get
with F.equals
if you really need to. Personally I try to keep it as simple as possible and just write the cb functions like in the example you provided, but there are cases where D.get
makes sense - it returns an Option so in case your object (dict) for some reason doesn't have the property in runtime then you can add some additional logic to handle the None option.
Doing the unsafe get is just more code and doesn't bring you any benefits that I know of
pipe(
collection,
A.filter(
flow(
D.getUnsafe('key'),
F.equals('value')
)
),
A.reject(
d => d.id === 0
),
)
from ts-belt.
Yeah, it is way easier to write the callback. Would there be any value in having something like propEq
in your opinion?
from ts-belt.
I'm not sure if by testing you meant writing tests, but Jest and Vitest have a matcher for it toHaveProperty
.
Personally I find very little value in grabbing properties by a string, because it only works at root level of the object and if I want to grab a nested value I will again use a predicate.
Maybe there is something that I am missing
from ts-belt.
Ok, thanks. Feel free to close this.
from ts-belt.
for the code above, our team uses like
pipe(
collection,
A.filter(({key})=>key === 'value' ),
A.reject(({id})=>id === 0)
)
In my opinion, sometimes, using just pure js' operator gives more readability, since pipe and flows add more unnecessary depth to the code. (hope the pipeline operator comes to the js)
from ts-belt.
Related Issues (20)
- Can you tell me how to handle multiple Option types? HOT 4
- A.dropWhile is completely broken HOT 1
- `A.take` does not return empty array when `n` greater than length of array (as documented) HOT 2
- foy for the building not working properly HOT 3
- Update benchmarks to latest package versions HOT 4
- Proposal: G.isFinite HOT 1
- suggestion: reboot with rescript core? HOT 3
- snippets, and linter
- Better S.startsWith
- Why an Option type instead of `type` | undefined? HOT 4
- Using unions for a result HOT 11
- ts-belt usage example flagged by TypeScript HOT 2
- why not `Do Notation` and `Applicative`
- Misleading annotations for Array.range
- Is this library still being maintained? HOT 1
- 🚧 Announcement: the current state of ts-belt 🚧 HOT 3
- `AR.isOk` and `AR.isError` not defined
- `AR.toOption` for `undefined` promise resolutions resulting in `{ BS_PRIVATE_NESTED_SOME_NONE: 0 }` HOT 1
- O.Option's functions with null literal value behaves differ from with undefined literal values HOT 1
- Bad Typing Ok / Error HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ts-belt.