簡體   English   中英

React、typescript 和 prop-types:如何使用自己的類型?

[英]React, typescript and prop-types: how to use own type?

我有一個字符串類型文字,形式為type MyType = 'str1' | 'str2' | 'str3' type MyType = 'str1' | 'str2' | 'str3' type MyType = 'str1' | 'str2' | 'str3'並且我希望我的一個道具只接受這種類型,但我不知道如何告訴 PropTypes。

我曾嘗試使用propTypes.oneOf(['str1', 'str2', 'str3'])但隨后打字稿將其推斷為普通字符串,這是我不想要的。

由於這是使用 TypeScript 進行類型檢查,因此您不要嘗試在 React 運行時級別 ( propTypes ) 執行此操作,而是在 TypeScript 級別執行此操作。

您的組件應該在其 props 類型中使用您的字符串文字類型:

type MyComponentProps = {
    propName: MyType;
}

然后如果它是一個類組件:

class MyComponent extends React.Component<MyComponentProps, /*...your state type here...*/> {
    // ...
}

或者,如果您使用的是功能組件:

const MyComponent: React.FC<MyComponentProps> = ({propName}) => {
    // ...
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM