📜  TypeScript 中的泛型是什么?

📅  最后修改于: 2022-05-13 01:56:17.812000             🧑  作者: Mango

TypeScript 中的泛型是什么?

在本文中,我们将尝试了解所有事实以及与 TypeScript 中的泛型相关的细节以及一些编码示例。

TypeScript 中的泛型:

  • 每当编写或执行任何程序或代码时,人们总是要关心的一件主要事情就是制作可重用的组件,这进一步确保了程序或代码的可伸缩性和灵活性。
  • 泛型,因此出现在这里,因为它为用户提供了灵活编写任何特定数据类型(或返回类型)的代码,并且调用该用户的时间可以具体传递数据类型或返回类型。
  • 泛型提供了一种方法,使组件在为一定数量的参数(或实参)调用它时使用任何数据类型(或返回类型)。
  • 在泛型中,我们传递一个称为类型参数的参数,它放在小号 ( < ) 和大号 ( > ) 之间,例如,它应该类似于

编写泛型的语法:

我们可以使用以下语法将泛型添加到我们预先编写的代码中(这是在函数中使用泛型的语法):

function function_name  
    (parameter_name : data_type_parameter) 
    : return_type_parameter {
        // Rest code......
    }

在 TypeScript 中使用泛型的优点:

以下是 TypeScript 中泛型提供的优势列表:

  • 通过使用泛型,我们可以安全地存储单一类型的对象,而无需存储其他类型。
  • 通过使用泛型,我们不需要在调用时实现任何变量或函数的类型转换
  • 泛型通常在编译时检查,因此在运行时不存在问题。

现在,在了解了与泛型相关的所有上述细节之后,让我们继续前进并查看以下一些代码示例,以更好地理解泛型 -

示例 1:在这个示例中,我们将简单地了解如何尝试创建一个包含泛型参数的泛型函数,以及如何使用泛型参数调用该泛型函数。

Javascript
function displayData  
    (parameter :type_parameter) : type_parameter{
      return parameter;
  }
  
let result1 = displayData  ("GeeksforGeeks");
let result2 = displayData  ("Hello World !!");
let result3 = displayData  (1234567890);
  
console.log(result1);
console.log(result2);
console.log(result3);


Javascript
let displayResult =  
    (data_item : type_parameter[]) : type_parameter[] => {
    return new Array ().concat(data_item);
  }
  
let numbersArray = displayResult
    ([50 , 60 , 80 , 90]);
      
let stringArray = displayResult
    (["Hello World", "GeeksforGeeks"]);
  
console.log(numbersArray);
console.log(stringArray);
  
numbersArray.push(100);
stringArray.push("Apple");
  
console.log(numbersArray);
console.log(stringArray);


Javascript
let displayResult =  
    (id : type_1, name : type_2) => {
      return id + " - " + name;
    }
  
let data_1 = displayResult(2000, "GeeksforGeeks");
      
let data_2 = displayResult(2001, "Hello World !!");
  
console.log(data_1);
console.log(data_2);


输出:

GeeksforGeeks
Hello World !!
1234567890

示例 2:在此示例中,我们可能会尝试创建一个泛型函数,其泛型返回类型为数组以及传入的泛型参数(也是泛型数组数据类型),以及我们如何调用该泛型函数,这将返回数组作为结果。

Javascript

let displayResult =  
    (data_item : type_parameter[]) : type_parameter[] => {
    return new Array ().concat(data_item);
  }
  
let numbersArray = displayResult
    ([50 , 60 , 80 , 90]);
      
let stringArray = displayResult
    (["Hello World", "GeeksforGeeks"]);
  
console.log(numbersArray);
console.log(stringArray);
  
numbersArray.push(100);
stringArray.push("Apple");
  
console.log(numbersArray);
console.log(stringArray);

输出:

[ 50, 60, 80, 90 ]
[ 'Hello World', 'GeeksforGeeks' ]
[ 50, 60, 80, 90, 100 ]
[ 'Hello World', 'GeeksforGeeks', 'Apple' ]

示例 3:在此示例中,我们将创建一些多泛型变量,并将进一步了解如何在我们为执行而制作的函数中调用它们。

Javascript

let displayResult =  
    (id : type_1, name : type_2) => {
      return id + " - " + name;
    }
  
let data_1 = displayResult(2000, "GeeksforGeeks");
      
let data_2 = displayResult(2001, "Hello World !!");
  
console.log(data_1);
console.log(data_2);

输出:

2000 - GeeksforGeeks
2001 - Hello World !!

参考: https://www.typescriptlang.org/docs/handbook/2/generics.html