我最近一直在研究React,并希望使用 JSX 和 typescript。我无法找到任何关于此的资源或React的类型定义。
您可以将 Typescript 与 JSX 一起使用,并且类型定义可用吗?
React 团队目前正在讨论使 Typescript 注释成为内部使用的东西。这可能很快就会在官方上为您改变。
React jsx 将在即将发布的 TypeScript 1.6 中可用。这里有更多信息。
François de Campredon 为 React 创建了一个类型定义:https ://github.com/fdecampredon/react-observe-todomvc/blob/typescript/src/declarations/react.d.ts
它显然不支持 JSX,因为它是另一种语法与 TypeScript 不同的语言。
更新:旧答案不再正确。一段时间以来,Typescript 支持与.tsx
文件分离的语法上下文,它放弃了<>
转换语法以支持 JSX。
它不会。TypeScript 类型转换语法之间有很多歧义:
(<foo>bar)
和 JSX 内联 XML 语法:
(<foo>bar)</foo>)
做了一些研究,并认为我会回答我自己的问题。JSX 编译器似乎还不能识别 typescript 结构(希望以后能识别)。
你应该看看下面的谈话:
https://www.youtube.com/watch?v=9PTa9-PPVAc
它有很多关于如何使 React 与 TypeScript 一起工作的指示。
Facebook 最近还宣布了一个名为Flow的项目,该项目还为 Javascript 添加了静态类型。由于它们都是 Facebook 项目,因此在处理 React.js 时使用 Flow 可能比使用 TypeScript 更容易。
关于jsx:
您可以将您的反应组件拆分为两个文件。第一个将包含除渲染函数之外的所有内容,因此可以用 Typescript 编写。第二个将只使用 JSX 实现渲染功能。我知道这违反了“反应方式”,但它解决了这个问题。除了渲染功能之外,您将拥有 Typescript 的强大功能。
对于create-react-app
项目,只需从npx create-react-app my-app --template typescript
命令开始。