当前位置:首页 > React

如何用typescript写react

2026-03-10 22:36:25React

使用 TypeScript 编写 React 的基本方法

初始化项目
通过 create-react-appVite 初始化一个 TypeScript 模板的 React 项目:

npx create-react-app my-app --template typescript
# 或使用 Vite
npm create vite@latest my-app -- --template react-ts

定义组件 Props 和 State
使用 interfacetype 明确组件的 props 和 state 类型:

interface ButtonProps {
  label: string;
  onClick: () => void;
  disabled?: boolean; // 可选属性
}

const Button: React.FC<ButtonProps> = ({ label, onClick, disabled }) => {
  return <button onClick={onClick} disabled={disabled}>{label}</button>;
};

处理 State 和 Hooks
useState 指定类型以避免隐式的 any

const [count, setCount] = useState<number>(0);
const [user, setUser] = useState<{ name: string; age: number } | null>(null);

事件处理
明确事件参数类型,如 React.ChangeEventReact.MouseEvent

如何用typescript写react

const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
  console.log(e.target.value);
};

进阶实践

泛型组件
通过泛型增强组件灵活性:

interface ListProps<T> {
  items: T[];
  renderItem: (item: T) => React.ReactNode;
}

function List<T>({ items, renderItem }: ListProps<T>) {
  return <div>{items.map(renderItem)}</div>;
}

Context 类型化
createContext 提供默认值和类型:

如何用typescript写react

interface ThemeContextType {
  darkMode: boolean;
  toggleDarkMode: () => void;
}

const ThemeContext = createContext<ThemeContextType>({
  darkMode: false,
  toggleDarkMode: () => {},
});

第三方库类型支持
安装对应的类型声明文件(如 @types/react-router-dom),或在 tsconfig.json 中启用 "skipLibCheck": true 以兼容无类型的库。

常见问题解决

类型断言
在明确类型时使用 as<Type> 语法:

const inputRef = useRef<HTMLInputElement>(null);
// 访问时断言非空
console.log(inputRef.current!.value);

处理动态 Props
使用 Record<string, unknown> 或索引签名:

interface DynamicProps {
  [key: string]: string | number;
}

通过以上方法,可以逐步构建类型安全的 React 应用,减少运行时错误并提升代码可维护性。

分享给朋友:

相关文章

如何用java画图

如何用java画图

使用 Java 绘图基础 Java 提供了多种绘图方式,主要通过 java.awt 和 javax.swing 包中的类实现。以下是几种常见的绘图方法。 使用 Graphics 类绘图 Graphi…

如何用vue实现前端

如何用vue实现前端

Vue.js 前端开发实现方法 环境搭建与项目初始化 安装 Node.js 和 npm/yarn 作为基础环境 使用 Vue CLI 创建项目:vue create project-name 选择预设…

react如何用jq

react如何用jq

在React中使用jQuery React和jQuery可以一起使用,但需要注意两者的DOM操作方式不同。React使用虚拟DOM,而jQuery直接操作真实DOM。混合使用时需谨慎避免冲突。 安装…

如何用react做分页

如何用react做分页

使用 React 实现分页功能 分页是 Web 开发中常见的需求,React 可以通过状态管理和组件化轻松实现分页功能。以下是实现分页的几种方法。 基础分页实现 定义状态 使用 useState…

如何用react做项目

如何用react做项目

创建React项目 使用官方工具create-react-app快速初始化项目。确保已安装Node.js(版本≥14.0.0)和npm/yarn。 运行以下命令生成项目结构: npx creat…

如何用react写页面

如何用react写页面

创建React项目 使用create-react-app快速初始化项目,需提前安装Node.js环境。运行命令: npx create-react-app my-app cd my-app npm…