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)
- Cannot resolve module node:fs HOT 1
- Record types should refine Object.values HOT 2
- [flow-remove-types] doesn't remove some types HOT 1
- flow_parser.js file increased from 0.7M to 2.7M in v0.210 HOT 4
- `Omit` does not work well with unions HOT 3
- ☂️ Known unsoundness issues
- Partial type does not accept plain empty object literal as a default HOT 5
- Cannot return class type as T: Cannot return `root(...)` because a call signature declaring the expected parameter / return type is missing in `SomeModel` [1] but exists in function type [2].Flow(prop-missing) HOT 2
- Does not narrow down type after undefined/falsy check HOT 1
- Recursive/deep Partial HOT 2
- Bugs in negated `instanceof` expressions HOT 1
- [Question]: How to fix flowgen test after flow update HOT 3
- [Discussion]: Any plans to make Flow more interpopble with TS ecosystem? HOT 5
- Higher order type parameter support HOT 1
- Readme links to 404
- Strange index signature error if you use $Keys<O> instead of the equivalent literal union inside $ReadOnlyArray HOT 1
- [homebrew] automation script needs update HOT 2
- "Unxepcted identifier, expected the token ;" when using await inside of ES module HOT 3
- Can't iterate through chars in a string HOT 4
- Flow does not catch invalid switch statements HOT 1
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.