使用关键字"声明"在React Native项目中使用未知语法

时间:2018-03-23 02:30:38

标签: javascript reactjs react-native ecmascript-6

我刚刚在一个反应​​原生应用程序中遇到了一行代码,如下所示:

error[E0308]: match arms have incompatible types
  --> src\main.rs:6:21
   |
6  |       let final_val = match ref_option
   |  _____________________^
7  | |     {
8  | |         &Some(ref x) => x,
9  | |         _ => String::from("not Set" ),
   | |              ------------------------ match arm with an incompatible type

10 | |     };
   | |_____^ expected reference, found struct `std::string::String`
   |
   = note: expected type `&std::string::String`
              found type `std::string::String`

declare type Any = any; declare在哪里定义?这是第三方工具吗?

稍后,我看到any类型在以下组件定义中使用:

Any

我从未在对象的上下文之外看到语法class LoginForm extends Component { textInput: Any; constructor(props) { super(props); this.state = { email: "", password: "" }; } ,例如:key / value。

1 个答案:

答案 0 :(得分:1)

您可能正在查看TypeSript(TS)文件或使用Flow类型表示法的文件(我尝试过但无法根据该短片段判断它是哪一个)。由Microsoft开发的TypeScript是添加类型注释(以及其他内容)的JavaScript的超集,而由Facebook开发的Flow是JS的另一种注释。

declare type Any = any意味着告诉TS / Flow编译器有一个名为Any的类型,它可以是字面上的任何东西(字符串,数字,对象等)。 textInput: any表示LoginForm的所有实例都有一个名为textInput的属性("字段"在Java用语中),其类型为Any