【TypeScrpt】アロー関数でジェネリクスを使用する方法
TypeScript

【TypeScrpt】アロー関数でジェネリクスを使用する方法

作成日:2022年05月20日
更新日:2022年05月20日

ジェネリクスを使用して fluits 関数を作成しました。

tsx
function App() {
function fluits<T>(fluit: T): T {
return fluit;
}
const banana = fluits({
name: "バナナ",
price: 138,
});
return (
<>
<p>
{banana.name}は、{banana.price}円です。
</p>
</>
);
}
export default App;

image2

fluits 関数をアロー関数に変えようとすると、

tsx
const fluits = <T,>(fluit: T): T => {
return fluit;
};

image3

エラーが発生し、『JSX element 'T' has no corresponding closing tag.』と言われました。

JSX のタグと勘違いしているようです。

こちらを解消するには、<T>にある T の後に『,』を追加します。

tsx
const fluits = <T,>(fluit: T): T => {
return fluit;
};

これで<T,>は型であると認識してくれたので、エラーが解消されました。

image4

もう一つの方法として、extendsを使用する方法もあります。

tsx
const fluits = <T extends unknown>(fluit: T): T => {
return fluit;
};

こちらもエラーが解消されました。

image5

© 2024あずきぱんウェブスタジオ