Comments (4)
You can infer the parameter 'obj' to the 'any' type
like this:
const isEmpty = (obj: any) => [Object, Array].includes((obj || {}).constructor) && !Object.entries((obj || {})).length;
from you-dont-need-lodash-underscore.
Let's see the declaration of 'Array.includes':
interface Array<T> {
/**
* Determines whether an array includes a certain element, returning true or false as appropriate.
* @param searchElement The element to search for.
* @param fromIndex The position in this array at which to begin searching for searchElement.
*/
includes(searchElement: T, fromIndex?: number): boolean;
}
And the declaration of 'Object.constructor':
interface Object {
constructor: Function;
}
And Webstorm show this:
Array<ObjectConstructor | ArrayConstructor>.includes(searchElement: ObjectConstructor | ArrayConstructor, fromIndex?: number): boolean
That means Generics '' was identified as '<ObjectConstructor | ArrayConstructor>', and that's why Webstorm will show the warning 'Argument type Function is not assignable to parameter type ObjectConstructor | ArrayConstructor'.
Umm, this warning doesn't show in VS Code. And if you change the Javascript Version to Flow in Webstorm, it won't show too.
from you-dont-need-lodash-underscore.
You can infer the parameter 'obj' to the 'any' type
This seems to be only valid for Typescript, right? Sorry, I forgot to mention that I'm using Vanilla JavaScript.
from you-dont-need-lodash-underscore.
I'll check the WebStorm issues if there is something similar. It obviously looks more like a WebStorm thing.
from you-dont-need-lodash-underscore.
Related Issues (20)
- Why don't you use `instanceof` for `isDate`? HOT 4
- Add entry for _.shuffle HOT 6
- Is the _.keyBy collectionKeyBy function correct?
- `debounce` function is wrong implementation HOT 1
- Suggest structuredClone as a replacement for cloneDeep
- Package it and publish to NPM. HOT 2
- _.truncate ??? HOT 1
- Purpose of this repo HOT 2
- Array.prototype.at() was introduced in Node.js v16 HOT 1
- Add entry for _.isPlainObject HOT 1
- Guide: Creating Valid Substitutions for Lodash Functions HOT 1
- missing `_.merge` ?
- Add `findLast` and `findLastIndex` HOT 1
- Add entry for _.identity HOT 1
- chunk example is slower than lodash's chunk
- _.pick example is incorrect when some specified key doesn't exist HOT 4
- No example for _.set HOT 2
- Support eslint flat config
- Repository misconfiguration: test Actions workflow should not require PR approval
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 you-dont-need-lodash-underscore.