我刚刚在一个反应原生应用程序中遇到了一行代码,如下所示:
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。
答案 0 :(得分:1)
您可能正在查看TypeSript(TS)文件或使用Flow类型表示法的文件(我尝试过但无法根据该短片段判断它是哪一个)。由Microsoft开发的TypeScript是添加类型注释(以及其他内容)的JavaScript的超集,而由Facebook开发的Flow是JS的另一种注释。
declare type Any = any
意味着告诉TS / Flow编译器有一个名为Any
的类型,它可以是字面上的任何东西(字符串,数字,对象等)。 textInput: any
表示LoginForm
的所有实例都有一个名为textInput
的属性("字段"在Java用语中),其类型为Any
。