Reactjs Facebook React的打字脚本
我最近一直在研究,希望使用JSX和typescript。我找不到有关此的任何资源或的类型定义Reactjs Facebook React的打字脚本,reactjs,typescript,react-jsx,Reactjs,Typescript,React Jsx,我最近一直在研究,希望使用JSX和typescript。我找不到有关此的任何资源或的类型定义 您能将Typescript与JSX一起使用吗?类型定义可用吗?做了一些研究,我想我会回答自己的问题。JSX编译器似乎还不能识别typescript结构(希望以后能识别)。更新:旧的答案不再正确。Typescript在一段时间内支持使用.tsx文件的单独语法上下文,在这些文件中,它会删除强制转换语法以支持JSX 不会的。TypeScript类型转换语法之间存在很多歧义: (<foo>bar)
您能将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
文件的类
语法。不幸的是,错误的答案被标记为接受,因为有人错误地声称存在歧义问题,所以这将被忽略。因为我写了这篇文章,有更新、更聪明的地方可以看。