BVB Source Codes

prettier Show object_type.js Source code

Return Download prettier: download object_type.js Source code - Download prettier Source code - Type:.js
  1. /**
  2.  * @flow
  3.  */
  4.  
  5. var z: number = 123;
  6.  
  7. class A {}
  8. class B extends A {}
  9. class C extends A {}
  10.  
  11. type T = {
  12.   get goodGetterWithAnnotation(): number,
  13.   set goodSetterWithAnnotation(x: number): void,
  14.  
  15.   get propWithMatchingGetterAndSetter(): number,
  16.   set propWithMatchingGetterAndSetter(x: number): void,
  17.  
  18.   // The getter and setter need not have the same type
  19.   get propWithSubtypingGetterAndSetter(): ?number, // OK
  20.   set propWithSubtypingGetterAndSetter(x: number): void,
  21.  
  22.   set propWithSubtypingGetterAndSetterReordered(x: number): void, // OK
  23.   get propWithSubtypingGetterAndSetterReordered(): ?number,
  24.  
  25.   get exampleOfOrderOfGetterAndSetter(): A,
  26.   set exampleOfOrderOfGetterAndSetter(x: B): void,
  27.  
  28.   set exampleOfOrderOfGetterAndSetterReordered(x: B): void,
  29.   get exampleOfOrderOfGetterAndSetterReordered(): A,
  30. };
  31.  
  32. function test(obj: T) {
  33.   // Test getting properties with getters
  34.   var testGetterNoError2: number = obj.goodGetterWithAnnotation;
  35.  
  36.   var testGetterWithError2: string = obj.goodGetterWithAnnotation; // Error number ~> string
  37.  
  38.   // Test setting properties with getters
  39.   obj.goodSetterWithAnnotation = 123;
  40.  
  41.   obj.goodSetterWithAnnotation = "hello"; // Error string ~> number
  42.  
  43.   var testSubtypingGetterAndSetter: number = obj.propWithSubtypingGetterAndSetter; // Error ?number ~> number
  44.  
  45.   // When building this feature, it was tempting to flow the setter into the
  46.   // getter and then use either the getter or setter as the type of the
  47.   // property. This example shows the danger of using the getter's type
  48.   obj.exampleOfOrderOfGetterAndSetter = new C(); // Error C ~> B
  49.  
  50.   // And this example shows the danger of using the setter's type.
  51.   var testExampleOrOrderOfGetterAndSetterReordered: number =
  52.     obj.exampleOfOrderOfGetterAndSetterReordered; // Error A ~> B
  53. }
  54.  
downloadobject_type.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