首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Typescript中正确使用React属性?

如何在Typescript中正确使用React属性?
EN

Stack Overflow用户
提问于 2020-04-17 08:52:23
回答 2查看 31关注 0票数 0

我是一个新的反应和打字的人。

我发现我需要这样声明道具:

代码语言:javascript
复制
const Title = ({title}:{[key:string]:any}) => {

但对我来说,这似乎有点费解。有没有更好的方法来解决这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-17 08:58:28

如果你愿意,你可以通过声明一个带有你期望的所有道具的接口来保持它的简单性:

代码语言:javascript
复制
interface MyProps {
  A: string;
  B: number;
  C?: number; // C is optional
}

const MyComponent = ({ A, B }: MyProps) =>  { ... }
票数 2
EN

Stack Overflow用户

发布于 2020-04-17 08:59:42

我建议使用FC泛型(这是FunctionComponent泛型的别名)。我更喜欢使用它,而不是不使用泛型,因为它附加了children属性,并键入了函数组件React.Element vs JSX.Element的返回值。

代码语言:javascript
复制
import * as React from "react";
import {FC} from "react";

interface ITitleProps {
   title: string;
}

// This works as expected
export const Title1: FC<ITitleProps> = ({
    title,
    children // Added by 'FC'
}) => {
    return (
        <div>
            <h1>{title}</h1>
            <p>{children}</p>
        </div>
    );
};

// This produces an error
export const Title2 = ({
    title,
    children // property 'children' does not exist on type 'ITitleProps'
}: ITitleProps) => {
    return (
        <div>
            <h1>{title}</h1>
            <p>{children}</p>
        </div>
    );
};

这个GitHub试图弄清楚如何在React:React TypeScript Cheatsheet中使用TS是非常有价值的

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61262433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档