簡體   English   中英

TypeScript 條件類型混淆 - 類型不可分配

[英]TypeScript conditional types confusion - Type is not assignable

假設我有一個 function 接受可選的 object 並始終返回另一個 object。 如果我們將一些 object 傳遞給這個 function,我們通過添加一個預定義的屬性來修改它。 如果我們不傳遞任何 arguments,我們只返回一個具有此預定義屬性的 object。

type TPropsGetter = <T = undefined>(
    props?: T
) => T extends undefined
    ? { someValue: boolean }
    : T & { someValue: boolean };

const getProps: TPropsGetter = props => ({
    someValue: false,
    ...props
});

我很確定它會很好地工作,但是 TS 拋出以下錯誤:

'{ someValue: false; }' '{ someValue: false; }'不能分配給類型'T extends undefined? { someValue: boolean; }: T & { someValue: boolean; }' 'T extends undefined? { someValue: boolean; }: T & { someValue: boolean; }'

你認為我在這里缺少什么?

假設我有一個 function 接受可選的 object 並始終返回另一個 object。 如果我們將一些 object 傳遞給這個 function,我們通過添加一個預定義的屬性來修改它。 如果我們不傳遞任何 arguments,我們只返回一個具有此預定義屬性的 object。

type TPropsGetter = <T = undefined>(
    props?: T
) => T extends undefined
    ? { someValue: boolean }
    : T & { someValue: boolean };

const getProps: TPropsGetter = props => ({
    someValue: false,
    ...props
});

我很確定它會很好地工作,但是 TS 拋出以下錯誤:

'{ someValue: false; }' '{ someValue: false; }'不能分配給類型'T extends undefined? { someValue: boolean; }: T & { someValue: boolean; }' 'T extends undefined? { someValue: boolean; }: T & { someValue: boolean; }'

你認為我在這里缺少什么?

暫無
暫無

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

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