打字稿泛型或在变量上声明类型

时间:2021-07-04 20:38:51

标签: javascript typescript web

我刚刚开始学习 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”)

我曾尝试搜索类似的引文,但没有成功。

1 个答案:

答案 0 :(得分:0)

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

例如:

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

any 告诉 TypeScript 编译器可以从 func 传递或返回任何内容 - 它们不必匹配。