2021-10-10
[TypeScript] ジェネリクスの書き方メモ
ジェネリクスに関して <T>
はどこに書けば良いんだっけ?と(主に関数で)よくなるのでまとめておく。
関数
const func = <T>(value: T) => {
return value
}
const func: <T>(value: T) => T = value => {
return value
}
function func<T>(value: T) {
return value
}
関数は常に仮引数の前と覚えておけばいい。
注意として、TSXファイルの場合は =
の後ろに <>
を書くと「お、HTMLタグか?」とコンパイラが誤解してしまうので以下のように書く必要がある。
const func = <T, _>(value: T) => {
return value
}
// カンマだけでもいい
const func: <T,>(value: T) => T = value => {
return value
}
型
type Props<T> = {
value: T
}
クラス
class SomeClass<T> {
constructor(private value: T) {}
getValue(): T {
return this.value;
}
}
インターフェース
interface SomeInterface<T> {
value: T;
}
参考記事
https://zenn.dev/nash/articles/51eb559f6637a0