Only some types are allowed for index signature properties: string, number, symbol, template string patterns, and union types consisting only of these.
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 interface  StringArray  {  [index : number ]: string ; } type  IndexSign  = {  [key : number ]: string ; }; const  foo7 : StringArray  = {  1 : "foo" ,   2 : "foo" , }; foo7[1 ] foo7[2 ] 
In 可用类型别名,而不能用在 interface 上。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 type  A1  = {  [k in  string ]: number  } type  A1  = {  [k : string ]: number  } interface  A2 {  [k : string ]: number  } type  A3  = Record <string , number > type  A4  = {  age : number ; } 
如何声明一个对象或者数组
一般可以通过索引签名的方式
1 2 3 4 5 6 7 8 9 10 11 type  A = {  [k : string ]: number  } type  A2  = Record <string , number >type  A3  = {  name : string ;   age : number ; } 
如何描述数组?
一般通过三种方式描述数组
 
1 2 3 4 type A = string[]; type A = Array<string>; type A = [string, number]; // -- 精确描述