function person<T>(value: T): T {
return value
}
console.log(person('abc'))
console.log(person(555))
console.log(person([1, 2, 3]))
function reverse<T>(array: T[]): T[] {
return array.reverse()
}
let arrayNumbers: number[] = [1, 2, 3, 4, 5]
console.log(reverse(arrayNumbers))
interface HasLength {
length: number
}
function getLength<T extends HasLength>(obj: T): number {
return obj.length
}
let str = 'hello'
console.log(getLength(str))
interface Article {
title: string,
author: string,
date: string | Date | number
}
function createArticle<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key]
}
const article:Article = {
title: 'TypeScript泛型',
author: '汪汪',
date: '2025-04-23'
}
console.log(createArticle(article, 'author'))