在下面的NavLinkProps介面(React Router v6)中,我相信這是用 Typescript 撰寫的,但是當我檢查 Typescript 檔案中的“Interface”時,我看不出擁有聯合運算子“|”意味著什么 在“children:”之后和“React.ReactNode”之前,如:
children:
| React.ReactNode
| ((props: { isActive: boolean }) => React.ReactNode);
完整界面在這里。. .
export interface NavLinkProps
extends Omit<LinkProps, "className" | "style" | "children"> {
children:
| React.ReactNode
| ((props: { isActive: boolean }) => React.ReactNode);
caseSensitive?: boolean;
className?: string | ((props: { isActive: boolean }) => string | undefined);
end?: boolean;
style?:
| React.CSSProperties
| ((props: { isActive: boolean }) => React.CSSProperties);
}
TypeScript 檔案中的所有示例都只有聯合運算子“|” ** 在**第一種型別之后(如:
interface Foo {
myType: string | number;
}
這與有什么不同?:
interface Foo {
myType: | string | number;
}
uj5u.com熱心網友回復:
沒有什么不同 - 只允許領先的運算子使多行型別更具可讀性。
我深入研究了 TypeScript 源代碼;這是在#12386中實作的,所以它出現在 TS v2.1.4 中。在#31265 中進一步改進了主要運算子的決議。
考慮
type X =
| foo
| bar
| quux
| spam
| eggs;
對比
type X =
foo
| bar
| quux
| spam
| eggs;
這使它看起來foo有些特別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/407206.html
標籤:
