这< [T1,T2,T2]>是什么?语法在TypeScript中做什么?

时间:2018-02-14 16:11:19

标签: typescript

我在TypeScript函数中偶然发现了这行代码。我假设它正在将someVar投射到某个东西中,但我不知道它是什么。

<[AdditionalInformation, IDataLookup[], IDataLookup[]]>someVar

我无法在TypeScript文档中找到任何答案。有谁知道这是做什么的?

3 个答案:

答案 0 :(得分:4)

此语法用于转换变量。

在您的情况下,一个具有三个值的数组:

  • 一个AdditionalInformation(对象someVar[0]
  • 两个IDataLookupsomeVar[1]someVar[2]
  • 阵列

TypeScript中Type Assertions的另一个例子:

<[string, number, null]>myVar = ["Hello World", 3, null];

您可以查看类型断言in the TypeScript documentation

答案 1 :(得分:1)

这是一种类型转换/断言,请参阅4.16 Type Assertions

在上面的代码中,您已将someVar强制转换为包含3个元素的数组,其中第1个元素的类型为AdditionalInformation,第2个和第3个元素的类型均为IDataLookup[]。< / p>

示例代码:

var tmp = <[AdditionalInformation, IDataLookup[], IDataLookup[]]>someVar;
tmp[0]./*methods and properties of type AdditionalInformation are accessible here*/
tmp[1]./*array of IDataLookup is accessible here*/
tmp[2]./*array of IDataLookup is accessible here*/

答案 2 :(得分:0)

它是数组的强制转换和定义与单独类型索引的组合。

演员1:

var myVar:T = <T>someVar;

Cast 2(简化类型):

var myVar:[number, boolean, string] = <[number, boolean, string]>someVar;

这将创建一个带有数组类型的var,其中index 0只能包含一个数字,索引1是bool,索引2是一个字符串。