Comments (11)
Method overloading is the reason I most often hear. Like this example from the TypeScript Language Spec
interface Document {
createElement(tagName: "div"): HTMLDivElement;
createElement(tagName: "span"): HTMLSpanElement;
createElement(tagName: "canvas"): HTMLCanvasElement;
createElement(tagName: string): HTMLElement;
}
from flow.
This is an interesting use of string types. Will try supporting it. Basically it may boil down to us not being sensitive to === with string types, in which case the fix should be easy.
from flow.
Curious: what's the intended use of string types?
from flow.
+1 for this
from flow.
I've been thinking about this issue and I think I have an idea for how to implement this.
When x.type
is refined, we install a refinement into the scope called $REFI x.type
. We should be able to deconstruct that string to get the original identifier, x
. Once we have that, we can look up the type of that var and if it is a UnionT
, we can filter the list of types to be only those which are compatible with $REFI x.type
and install another refinement on x
itself using the filtered UnionT
.
That doesn't help us if the type
property is pulled off the x
object then checked by itself, because we "forget" that the value of type
is associated with the object x
, I believe.
I know that implementation is pretty wild (string manipulation! yuck!) and its incompleteness is pretty lame too. Worth doing? Is there a better way?
from flow.
@spicyj Finally got around to fixing this, motivated by real-world use cases. We can now write ML in JS! ;)
from flow.
Sweeet.
from flow.
Fixed in 0.13!
from flow.
@samwgoldman Thanks! Any plans for blog article with examples from the team?
from flow.
Blog post coming soon.
On Tuesday, June 30, 2015, Ingvar Stepanyan [email protected]
wrote:
@samwgoldman https://github.com/samwgoldman Thanks! Any plans for blog
article with examples from the team?β
Reply to this email directly or view it on GitHub
#20 (comment).
from flow.
Thanks!
from flow.
Related Issues (20)
- Relay + graphql literals HOT 11
- [homebrew] regression test failure with 0.226.0,0.227.0 HOT 2
- FLOW BUG: This is a misplaced error HOT 3
- The `experimental.ts_syntax` doesnβt seem to do anything HOT 2
- Parameters<> does not support optional params HOT 2
- Top level exports HOT 1
- flow strict should allow unclear types for generics HOT 6
- Regression in invalid-computed-prop detection HOT 7
- Flow hangs every now and then requires restarting HOT 4
- Component syntax is not enabled HOT 5
- Alternative defaultProps not working with component syntax HOT 1
- Ability to copy all files and not only JS files when stripping types using `flow-remove-types` HOT 5
- Component syntax & unreachable code HOT 1
- Add a setting to turn off type guard removal / mutation risk check
- There is a question about `user friends` under limited login. When using limited login, the app only [get the user friends's app scoped IDs (ASIDs).](https://developers.facebook.com/docs/facebook-login/limited-login/permissions/#key-considerations-user-friends) **Can we get brief details about these user friends**, such like name, avatar, etc. It seems like we can't use graph API under limited login any more.
- [Proposal] Mark state & prop arrays in components & hooks as readonly HOT 5
- React.ElementType not working for children HOT 1
- Default arguments in an object destructure aren't checked for string literal unions HOT 1
- Regression with incompatible-type detection HOT 2
- Internal error on double underscore function name HOT 2
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 flow.