Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是<;{}>;在javascript扩展的末尾是什么意思?_Javascript_Reactjs_React Native - Fatal编程技术网

什么是<;{}>;在javascript扩展的末尾是什么意思?

什么是<;{}>;在javascript扩展的末尾是什么意思?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我在react native的一个教程中遇到了以下语法。组件的声明,如下所示: export default class App extends Component<{}> { //implementation } ?这是一种语法,中的内容是您期望对象的类型 该代码段是用typescript编写的。语法用于指定组件上的通用约束 我的建议是,如果您不使用typescript,在阅读教程时基本上可以忽略这个符号。但是,如果您有兴趣了解更多信息: 以下是有关的文档 在react/re

我在react native的一个教程中遇到了以下语法。组件的声明,如下所示:

export default class App extends Component<{}> {

//implementation

}

这是一种语法,
中的内容是您期望对象的类型

该代码段是用typescript编写的。
语法用于指定组件上的通用约束

我的建议是,如果您不使用typescript,在阅读教程时基本上可以忽略这个符号。但是,如果您有兴趣了解更多信息:

以下是有关的文档

在react/react native for typescript中的
组件上

基本上,react组件接受两个通用参数,一个用于组件的属性(
this.props
),一个用于状态(
this.state

此外,
{}
是没有属性的空对象的类型,因此这基本上意味着可以在不指定任何属性的情况下创建组件。您可以在JSX中使用这个组件,只需一个简单的
。您应该注意,默认情况下,props和state都只是
{}
,因此它们不需要像第一个代码片段中那样手动指定。事实上,第一个和第二个代码段在功能上是相同的(尽管只有第二个代码段是有效的jsx,但第一个代码段需要编译typescript)


最后,虽然另一个答案是正确的,但您应该注意,在这种情况下,
中的内容具体是组件的“props”对象的类型,通过
this.props
在组件中访问。一般来说,泛型约束几乎可以表示任何东西,但在这种特殊情况下,它是道具的类型。

当我们谈论react/react native时,它更可能是(facebook的)而不是typescript

它们的语法非常相似,在本例中完全相同,但流程由RN的packager提供开箱即用的支持,通常使用
.js
扩展,并且在该生态系统中更为普遍


无论哪种方式,@CRice的意思都是正确的——在本例中,它是一个类型。

这看起来像,并且是声明它是什么类型(在您的案例中是一个对象)的方式,这似乎是typescript。在typescript中,
组件
类接受两个通用参数。第一个是道具的类型,第二个是状态的类型。两者都默认为
{}
,因此您的两个代码段是等效的。@Sag1v您的注释是正确的答案。你能添加你的评论作为回答来帮助其他人回答同样的问题吗?@jasperseinhorstdone:)
export default class App extends Component {