1. class DataManager {
    2. constructor(private data: string[] | number[]) { }
    3. getItem(index: number):string | number {
    4. return this.data[index]
    5. }
    6. }
    7. class DataManager<T> {
    8. constructor(private data: T[]) { }
    9. getItem(index: number):T {
    10. return this.data[index]
    11. }
    12. }
    13. const data = new DataManager<number>([1])
    14. const data = new DataManager([1])
    15. data.getItem(0)
    16. interface Item {
    17. name: string
    18. }
    19. class DataManager<T extends Item> {
    20. constructor(private data: T[]) { }
    21. getItem(index: number):T {
    22. return this.data[index].name
    23. }
    24. }
    25. const data = new DataManager([
    26. {
    27. name: 'Jack'
    28. }
    29. ])
    30. interface Test {
    31. name: string
    32. }
    33. class DataManager<T> {
    34. constructor(private data: T[]) { }
    35. getItem(index: number):T {
    36. return this.data[index]
    37. }
    38. }
    39. // 泛型对应的具体类型是Test
    40. const data = new DataManager<Test>
    41. class DataManager<T extends number | string> {
    42. constructor(private data: T[]) {}
    43. getItem(index: number): T {
    44. return this.data[index]
    45. }
    46. }
    47. const data = new DataManager<string>([])
    1. const func: <T>(param: T) => T = <T>(params: T) => {
    2. return params
    3. }