
使用下面命令安装最新版本的 React 类型定义:
npm install @types/react @types/react-dom
然后在 tsconfig.json 中设置以下编译器选项:
必须在
lib中包含dom(注意:如果没有指定lib选项,默认情况下会包含dom)。jsx必须设置为一个有效的选项。对于大多数应用程序,preserve应该足够了。 如果你正在发布一个库,请查阅jsx文档 以选择合适的值。
在 React 组件中使用 TypeScript
注意
每个包含 JSX 的文件都必须使用 .tsx 文件扩展名。这是一个 TypeScript 特定的扩展,告诉 TypeScript 该文件包含 JSX。
使用 TypeScript 编写 React 与使用 JavaScript 编写 React 非常相似。与组件一起工作时的关键区别是,你可以为组件的 props 提供类型。这些类型可用于正确性检查,并在编辑器中提供内联文档。
以 快速入门 指南中的 MyButton 组件 为例,我们可以为按钮的 title 添加一个描述类型:
function MyButton({ title }: { title: string }) {
return (
<button>{title}</button>
);
}
export default function MyApp() {
return (
<div>
<h1>欢迎来到我的应用</h1>
<MyButton title="我是一个按钮" />
</div>
);
}注意
这些沙盒可以处理 TypeScript 代码,但它们不运行类型检查器。这意味着你可以修改 TypeScript 沙盒以进行学习,但你不会收到任何类型错误或警告。要进行类型检查,你可以使用 TypeScript Playground 或使用更完整的在线沙盒。
这种内联语法是为组件提供类型的最简单方法,但是一旦你开始描述几个字段,它可能变得难以管理。相反,你可以使用 interface 或 type 来描述组件的 props:
interface MyButtonProps {
/** 按钮文字 */
title: string;
/** 按钮是否禁用 */
disabled: boolean;
}
function MyButton({ title, disabled }: MyButtonProps) {
return (
<button disabled={disabled}>{title}</button>
);
}
export default function MyApp() {
return (
<div>
<h1>Welcome to my app</h1>
<MyButton title="我是一个禁用按钮" disabled={true}/>
</div>
);
}描述组件 props 的类型可以根据需要变得简单或复杂,但它们应该是使用 type 或 interface 描述的对象类型。你可以在 对象类型 中了解 TypeScript 如何描述对象,但你可能还对使用 联合类型 描述可以是几种不同类型之一的 prop,以及在 从类型创建类型 指南中参考更高级的用例。







网友评论文明上网理性发言 已有0人参与
发表评论: