我感到困惑,因为我知道我可以像这样使用函数表达式:
import React from 'react';
import './App.css';
const App: React.FC = ({children}) => {
return (
<div className="App">
{children}
</div>
);
}
export default App;
例如,React Create App使用常规函数声明来生成脚手架项目,无需使用React.FC进行类型定义,但如果我想添加像children这样的props,则必须像这样为其定义类型:
import React from 'react';
import './App.css';
function App({children}: {children: JSX.Element}) {
return (
<div className="App">
{children}
</div>
);
}
export default App;
如果我可以使用箭头函数或者一个普通的匿名函数表达式来创建React.FC,那么对我来说这没有意义:
import React from 'react';
import './App.css';
const App: React.FC = function({children}) {
return (
<div className="App">
{children}
</div>
);
}
export default App;
而且我不需要为子项属性添加任何类型。
所以问题是,假设React create app使用常规函数声明来搭建应用程序,那么什么是首选方式?但是通过这样做,我会失去React.FC显式的代码块,例如使用函数表达式得到的子项属性。
React.FC<MyProps>
,因此它并不是一个明显的优势。 - Aluan Haddad