BVB Source Codes

prettier Show proptype_instanceOf.js Source code

Return Download prettier: download proptype_instanceOf.js Source code - Download prettier Source code - Type:.js
  1. /* @flow */
  2.  
  3. class A {}
  4. class B extends A {}
  5. class C extends B {}
  6.  
  7. var React = require('react');
  8. var Example = React.createClass({
  9.   propTypes: {
  10.     x: React.PropTypes.instanceOf(B),
  11.   }
  12. });
  13.  
  14. (<Example x={new A} />); // error: A ~> B
  15. (<Example x={new B} />); // OK
  16. (<Example x={new C} />); // OK (C ~> B)
  17. (<Example x="wrong" />); // error: string ~> B
  18.  
  19. class Poly<T> {x:T}
  20. var PolyExample = React.createClass({
  21.   propTypes: {
  22.     x: React.PropTypes.instanceOf(Poly).isRequired,
  23.   },
  24.   m() {
  25.     (this.props.x.x: empty); // OK, T instantiated to `any`
  26.   }
  27. });
  28.  
  29. // Different instantiations don't interact
  30. (<PolyExample x={(new Poly(): Poly<string>)} />); // OK
  31. (<PolyExample x={(new Poly(): Poly<number>)} />); // OK
  32.  
  33. class PolyDefault<T=string> {x:T}
  34. var PolyDefaultExample = React.createClass({
  35.   propTypes: {
  36.     x: React.PropTypes.instanceOf(PolyDefault).isRequired,
  37.   },
  38.   m() {
  39.     (this.props.x.x: empty); // OK, T instantiated to `any`
  40.   }
  41. });
  42.  
downloadproptype_instanceOf.js Source code - Download prettier Source code
Related Source Codes/Software:
storybook - 2017-06-07
ionicons - The premium icon font for Ionic ... 2017-06-07
AsyncDisplayKit - Smooth asynchronous user interfaces for iOS apps. ... 2017-06-07
lottie-android - Render After Effects animations natively on Androi... 2017-06-07
parse-server - Parse-compatible API server module for Node/Expres... 2017-06-07
inferno - An extremely fast, React-like JavaScript library f... 2017-06-08
guetzli - Perceptual JPEG encoder 2017-06-08
cs-video-courses - List of Computer Science courses with video lectur... 2017-06-08
interviews - Everything you need to know to get the job. 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top