簡體   English   中英

如何使用 infer 來推斷 void function 的返回類型?

[英]how to use infer to infer the return type of a void function?

我試圖更好地理解在 typescript 中使用infer關鍵字。

這會是正確使用推斷的有效演示嗎?

我只想推斷以下function的返回類型,

const [name, setName] = useState<string>('');
const [age, setAge] = useState<number>();

type CallbackType<T> = T extends () => infer R ? R: never

function stateCallback<T>(name: string, age: number): CallbackType<T>{
  setName(name)
  setAge(age);
}

它應該返回一個 void 類型,因為我沒有返回任何東西,這是使用infer的正確方法嗎?

操場

不,這不是應該使用infer的方式。 如果您希望 TypeScript推斷function 的返回類型,只需不要指定返回類型。

function stateCallback(name: string, age: number) {
  setName(name)
  setAge(age);
}
// return type of stateCallback is inferred as void

infer關鍵字可用於(除其他外)從類型中提取信息。 因此,如果您將 function 類型傳遞給CallbackType ,它將返回函數的返回類型。

type CallbackType<T> = T extends () => infer R ? R : never

type Result = CallbackType<() => string>
// -> string

暫無
暫無

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

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