Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does "type" mean and is there is a special use for a question mark in ECMA 6?

In React Native Example Code, you'll find at some files the type statement, which encapsulates 4 properties (I'd like to guess), where the last two ones are suffixed with question marks.

type MapRegion = {
  latitude: number,
  longitude: number,
  latitudeDelta?: number,
               ^============   What are these...
  longitudeDelta?: number,
};              ^===========...question marks for? 

What does all this mean? In specification of ECMAScript 6 I can't find anything regarding "type".

like image 323
delete Avatar asked Dec 26 '15 14:12

delete


1 Answers

That is flow, a transpiler language that adds static typing to JavaScript.

type MapRegion = {
  latitude: number,
  longitude: number,
  // This property is nullable
  latitudeDelta?: number,
  // This property is nullable
  longitudeDelta?: number,
}; 

// The following does not cause a compilation error

/* @flow */
var a:MapRegion = {
  latitude: 1,
  longitude: 3 
};
like image 185
Juan Mendes Avatar answered Nov 07 '22 23:11

Juan Mendes