網站搜尋

TypeScript 函數泛型參數在函數變數中 `找不到名稱 'React'`


如何在變數函數中撰寫這個具有泛型參數的 TypeScript 函數(將函數存儲在變數中)?

function identity<T>(arg: T): T {
  return arg;
}

我試了這個,但是它報錯 找不到名稱 'React'

const identity = <T>(arg: T): T => {
    return arg;
}

答案#1

假設你指的是 Cannot find name 'React'. 的錯誤,那是因為 TypeScript 嘗試將 <T>.. 解析為 React 元素。你可以在泛型參數後面加上逗號來防止這種情況:<T> ~> <T,>

const identity = <T,>(arg: T): T => {
  return arg;
}

TypeScript 遊樂場

或者,你可以添加一個虛擬的 extends 子句,例如 <T extends {}>,但是 <T,> 是最清潔的解決方案。