2015-04-01 52 views

回答

63

使用的联合类型(string|number)[]演示:

var foo: (string|number)[] = [ 1, "message" ]; 
+0

刚一说明,这将需要TS V1.4 + – Brocco 2015-04-01 14:07:59

+1

...它不会与复杂类型具有不同特性的工作,当你想访问两个类型中仅有一个可用的属性。 – Nadine 2017-11-30 17:21:44

43

如果你把它当作一个元组(见language spec的3.3.3节),则:

var t:[number, string] = [1, "message"] 

interface NumberStringTuple extends Array<string|number>{0:number; 1:string} 
var t:NumberStringTuple = [1, "message"]; 
+5

提示:我宁愿'键入NumberStringTuple = [数字,字符串]' – basarat 2015-04-01 04:46:55

+0

谢谢!我完全找这个:'常量W3COLORS:[字符串,字符串,数字,数字] = [[ “艾莉斯蓝”, “#f0f8ff”,240,248,255],...];' – CoderPi 2015-12-06 00:01:49

+1

注意 - 这两种类型都必须在数组中(也不适用于空数组)。接受的答案更多样化,我个人总是使用,但这取决于需求。 – druvisc 2017-04-17 11:03:36

-5

使用Array<any>和享受!

+2

通过使用你是无效的使用打字稿的目的 – 2017-12-08 17:41:43