“类型”是啥意思,ECMA 6 中的问号有啥特殊用途吗?

Posted

技术标签:

【中文标题】“类型”是啥意思,ECMA 6 中的问号有啥特殊用途吗?【英文标题】:What does "type" mean and is there is a special use for a question mark in ECMA 6?“类型”是什么意思,ECMA 6 中的问号有什么特殊用途吗? 【发布时间】:2016-04-01 01:06:21 【问题描述】:

在 React Native 示例代码中,您会发现 at some files 和 type 语句,它封装了 4 个属性(我想猜一下),其中最后两个带有问号后缀。

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

这一切意味着什么?在 ECMAScript 6 的规范中,我找不到任何关于“类型”的信息。

【问题讨论】:

【参考方案1】:

即flow,一种向 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 
;

【讨论】:

TypeScript 脚本是否有.js 作为文件扩展名? @idmean,还没有。默认扩展名是 .ts,但是有一个项目允许在未来版本之一中转换 .js 文件。 这是流程,而不是 TypeScript。 @FelixKling 谢谢,已修复【参考方案2】:

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

http://flowtype.org/

【讨论】:

以上是关于“类型”是啥意思,ECMA 6 中的问号有啥特殊用途吗?的主要内容,如果未能解决你的问题,请参考以下文章

ECMA-262-v6 中的“符号”类型有啥意义?

VSCode——VScode提供的代码格式中问号是啥意思

问号和点运算符是啥意思?在 C# 6.0 中是啥意思?

这些代码中的问号是啥意思? [复制]

C语言中“SIZEOF(INT)“是啥意思?有啥作用?

html中表达式和%%都是啥意思,有啥区别吗?