首页 > 解决方案 > 打字稿泛型或在变量上声明类型

问题描述

我刚开始学习 Typescript,有一点我不明白。有什么区别:

(声明变量的类型)

function func1 (arg: any): any {
  return arg
}
let var1: string = func1(“Hello”)

(使用泛型)

function func2 <T>(arg: T): T {
  return arg
}
let var2 = func2<string>(“Hello”)

我曾尝试搜索类似的报价,但没有运气。

标签: javascripttypescriptweb

解决方案


在您使用泛型的第二个示例中,如果在编译时已知该类型,则会保留该类型。

例如:

let x = 27; // x is a number
let y = func2(x); // y is inferred to be a number at compile time

any告诉 TypeScript 编译器可以传递或返回任何东西func——它们不必匹配。


推荐阅读