簡體   English   中英

Typescript JSX 與 Generics - 參數隱式具有“任何”類型

[英]Typescript JSX with Generics - Parameter implicitly has an 'any' type

當使用帶有 Generics 的 JSX 語法時,Typescript 能夠正常推斷屬性,除了 function 參數的類型。

示例代碼:

interface Dictionary {
  a: JSX.IntrinsicElements['a'];
  button: JSX.IntrinsicElements['button'];
}

type Props<T extends 'a' | 'button'> = Dictionary[T] & {
  as: T;
};

function Test<T extends 'a' | 'button'>(args: Props<T>) {
  return null;
}

<Test as="a" href="#" onClick={(arg) => {}} />; // Parameter 'arg' implicitly has an 'any' type.

Test({
  as: 'a',
  href: '#',
  onClick: (arg) => {}, // No error
});

TS游樂場

如果我將鼠標放在 onClick 屬性上,它可以判斷 onClick 的類型(React.MouseEventHandler<HTMLAnchorElement>),但仍然無法推斷參數的類型。

只需使用args: any明確將其定義為 any ,它應該停止將其顯示為錯誤:)

暫無
暫無

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

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