打字稿泛型并找出变量的类型

时间:2016-05-05 21:33:09

标签: typescript

我正在阅读打字稿中的泛型。甚至没有意识到他们在那里:

var list: number[] = [1, 2, 3];

// Alternatively, using the generic array type

var list: Array<number> = [1, 2, 3];

这让我很好奇我是否说过:

var list = [1,2,3]

Typescript会推断出类型,如果是,它会推断出什么类型。所以我想知道我是否有办法让Typescript向我展示一个变量的类型。

2 个答案:

答案 0 :(得分:2)

检查Microsoft Visual Studio代码 - 它是一个小编辑器,对Typescript非常有用。对Typescript有最好的支持。如果将鼠标悬停在变量上,它将自动告诉您类型。

默认情况下,

Typescript编译器尽可能地尝试帮助,所以如果您要设置变量,如:

let abc = 'ABC';

您不必指定类型(它会自动检测到这是一个字符串)。对于数组泛型,它有点复杂,它将遍历数组中的所有键,选择每个键类型。例如,您可以:

let test = ['test', 123];

此数组将输入Array<string|number>

Web工具对于快速检查非常有用,但如果您处理较大的项目,则无法将文件复制并粘贴到浏览器窗口中。 PHPStorm / WebStorm有很好的TS支持,但遗憾的是它不会告诉你变量类型 - Microsoft Visual Studio Code会做。

关于VisualStudioCode的一个好处 - &gt;它是免费的,写在Typescript;)

答案 1 :(得分:1)

此功能通常可通过您的开发工具获得(意见各不相同,但有几种可供免费下载)。在许多情况下,包括这个,您可以通过查看所分配的内容来确定类型(此处,类型为number[],如您所料。

如果您在尝试时使用纯文本编辑器,则可以将代码粘贴到&#34; Playground&#34; TypeScript网站的一部分 - 例如here's your code,通过将鼠标悬停在list上,您可以看到其类型为number[]

请注意,类型在typescript中被删除,因此您无法在运行时确定泛型的类型,您必须传入构造函数(因为您在Java中进行编码,这应该是熟悉的。)