// 関数を定義
function getfirstMember<T>(list: T[]) {
return list[0]
}
この関数に対して、型をアノテートしないで使用した場合は引数から型推論される
type User = {
id: number
age: number
name: string
}
const users: User[] = [
{
id: 1,
age: 22,
name: "太郎",
},
{
id: 2,
age: 41,
name: "花子",
},
]
const resultA = getfirstMember(users) // resultAの型は User
const resultB = getfirstMember(["hoge", "fuga"]) // resultBの型は string
const resultC = getfirstMember([undefined, true, false]) // resultCの型は boolean|undefined
const resultD = getfirstMember(true) // エラー
const result = getfirstMember([() => {}, () => {}]) // resultEの型は () => void