"类型"是什么意思,ECMA 6中的问号有特殊用途吗?

del*_*ete 5 javascript ecmascript-6 reactjs flowtype react-native

在React Native Example Code中,你会在某些文件中找到这个type语句,它封装了4个属性(我想猜),最后两个属性后面带有问号.

type MapRegion = {
  latitude: number,
  longitude: number,
  latitudeDelta?: number,
               ^============   What are these...
  longitudeDelta?: number,
};              ^===========...question marks for? 
Run Code Online (Sandbox Code Playgroud)

这是什么意思呢?在ECMAScript 6的规范中,我找不到任何关于"类型"的信息.

Jua*_*des 5

这就是,一种为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 
};
Run Code Online (Sandbox Code Playgroud)

  • 这是流程,而不是TypeScript. (2认同)

rme*_*ns9 5

Facebook实际上正在使用他们的静态类型转换的JavaScript版本'Flow'.这就是你在这里看到的.它有点类似于TypeScript,因此很容易被误认为彼此.

http://flowtype.org/