【发布时间】:2020-01-15 19:15:31
【问题描述】:
只是使用React.FC类型吗?
import React from 'react'
const MyComponent: React.FC = () => (
...
);
export default MyComponent;
【问题讨论】:
-
React.SFC? props 还有一个可选的泛型
标签: reactjs typescript
只是使用React.FC类型吗?
import React from 'react'
const MyComponent: React.FC = () => (
...
);
export default MyComponent;
【问题讨论】:
React.SFC? props 还有一个可选的泛型
标签: reactjs typescript
是的,您也可以使用FunctionComponent。 FC 实际上只是它的别名。 SFC 已被弃用。
【讨论】:
在将 React 函数式组件与 TypeScript 一起使用时,您应该定义 generics 并将其与您的函数式组件一起使用。
这将在构建组件时提供额外的安全层,从而让您更快地发现错误。
interface MyProps {
value: string,
}
const MyComponent: React.FC<MyProps> = (props) => {
const { value } = props;
return <span>{value}</span>;
}
同样,您可以对通用 React 组件使用泛型。
【讨论】:
MyComponent.propTypes?
propTypes 和 TypeScript 接口/泛型并没有多大用处。这是因为您的逻辑似乎相当“内部”,并且接口会在编译时捕获错误。但是,如果您实际打包应用程序并将其发布为npm 包,您可能还需要使用propTypes,因为类型检查需要在运行时完成,因为数据将来自外部而类型检查不足跨度>
propTypes 与 TS interfaces 的详细讨论:stackoverflow.com/questions/41746028/…