Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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
Reactjs Facebook React的打字脚本_Reactjs_Typescript_React Jsx - Fatal编程技术网

Reactjs Facebook React的打字脚本

Reactjs Facebook React的打字脚本,reactjs,typescript,react-jsx,Reactjs,Typescript,React Jsx,我最近一直在研究,希望使用JSX和typescript。我找不到有关此的任何资源或的类型定义 您能将Typescript与JSX一起使用吗?类型定义可用吗?做了一些研究,我想我会回答自己的问题。JSX编译器似乎还不能识别typescript结构(希望以后能识别)。更新:旧的答案不再正确。Typescript在一段时间内支持使用.tsx文件的单独语法上下文,在这些文件中,它会删除强制转换语法以支持JSX 不会的。TypeScript类型转换语法之间存在很多歧义: (<foo>bar)

我最近一直在研究,希望使用JSX和typescript。我找不到有关此的任何资源或的类型定义


您能将Typescript与JSX一起使用吗?类型定义可用吗?

做了一些研究,我想我会回答自己的问题。JSX编译器似乎还不能识别typescript结构(希望以后能识别)。

更新:旧的答案不再正确。Typescript在一段时间内支持使用
.tsx
文件的单独语法上下文,在这些文件中,它会删除
强制转换语法以支持JSX


不会的。TypeScript类型转换语法之间存在很多歧义:

(<foo>bar)
(条形)
和JSX内联XML语法:

(<foo>bar)</foo>)
(条))

François de Campredon为React创建了一个类型定义:


它显然不支持JSX,因为它是另一种语法与TypeScript不同的语言。

React团队目前正在讨论将TypeScript注释作为内部使用的东西。这可能很快会在官方网站上为您更改。

关于jsx:


您可以将react组件拆分为两个文件。第一个将包含除render函数之外的所有内容,因此可以用Typescript编写。第二种方法只是使用JSX实现render函数。我知道这违背了“反应方式”,但它解决了这个问题。除了渲染功能外,您将拥有Typescript的强大功能。

您应该查看以下内容:

它有很多关于如何使React与TypeScript一起工作的指针


Facebook最近还宣布了一个名为的项目,该项目还向Javascript添加了静态类型。由于它们都是Facebook项目,在处理React.js时使用Flow可能比使用TypeScript更容易。

React jsx将在提交TypeScript 1.6中提供。以下是。

对于
创建反应应用程序
项目,只需使用
npx创建反应应用程序我的应用程序--template typescript
命令即可开始


进一步阅读:

现在事情似乎已经改变了,从正式的打字稿开始

TypeScript支持嵌入、类型检查和将JSX直接编译为JavaScript


关于如何直接使用Typescript启动项目,transpiler和JSX的一般问题是transpiler需要理解或传递JSX代码,或者JSX需要理解或传递Typescript代码,所以要做到这一点需要做很多工作。看看这个问题,Facebook的Flow可以作为TypeScript的替代品,并且支持JSX和ES6。在正式发布之前,你可以尝试一下:很好,但这不是很容易放弃吗?我确信有各种各样的解决方法,从上下文相关的语法解析(比如,假设它是一个React组件,但如果找不到结束标记,则假设它是一个类型断言)到在.tsx文件中编写类型脚本类型断言,例如
bar
。看起来这实际上是可能的。我自己还没有运行过,所以请小心操作。是的,他们只是在IRC频道,或者在他们的发行说明中,或者在他们的博客上,简单地抛出了
v
来支持
v作为
.tsx
文件的类
语法。不幸的是,错误的答案被标记为接受,因为有人错误地声称存在歧义问题,所以这将被忽略。因为我写了这篇文章,有更新、更聪明的地方可以看。