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

Ad

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".

Ad

Answer

Ad

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 
};
Ad
source: stackoverflow.com
Ad