You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React+TS调用组件时报Type 'boolean'不可分配给number类型如何解决

错误原因

你在App.tsx中给TextField组件传递age属性时,不符合JSX的语法规则:JSX 中只有字符串字面量可以直接用引号赋值,所有非字符串类型的值(数字、布尔、变量、表达式等)都必须用{}包裹。你写的age=12没有加花括号,TypeScript 会将其解析为布尔值true,和你在Props接口中定义的age: number类型不匹配,因此抛出类型错误。

修复方案

直接修改App.tsx中调用TextField组件的代码,给数字12套上花括号即可:

// 修改前
<TextField name='fef' age=12/>
// 修改后
<TextField name='fef' age={12}/>

修正后的完整 App.tsx 代码

import React, { useState } from 'react';
import logo from './logo.svg';
import './App.css';
import { TextField } from './components/TextField';

function App() {
  return (
    <div className="App">
      <TextField name='fef' age={12}/>
    </div>
  );
}

export default App;
补充注意事项
  • 所有非字符串类型的Props传值都需要用{}包裹,比如布尔值disabled={false}、变量age={userAge}、计算表达式age={2024 - birthYear}
  • 字符串类型的属性也可以统一用{}包裹写法,比如name={'fef'},和引号写法效果完全一致。

内容的提问来源于stack exchange,提问作者nimsara-c

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:54:02