在TypeScript中,可以声明,例如var b
与var s
的类型相同:
var s = "hello";
var b: typeof s;
是否有一种简单的方法可以声明var b
与数组中的元素具有相同的类型?在这里,var b
仍然应该是一个字符串:
var c = ["hello", "world"];
var b: typeof(c[0]);
一个丑陋的解决方法(即使c
为空也会运行)是:
var c = ["hello", "world"];
var a = (<T>(x: T[]): T => null)(c);
var b: typeof a;
有更好的方法吗?
答案 0 :(得分:1)
有更好的方法吗?
没有。它没有专门的语法。如果没有专用语法,您基本上需要T[]
并提供T
的内容。你的内联函数是这种通用用法的一个很好的例子。
答案 1 :(得分:1)
无法在语言规范中找到关于此的任何内容,对我而言,这似乎是一件太微不足道的事情,无法实施;至少在TypeScript所处的当前阶段。
但是,更短/更简单的解决方法可能是:
var a = 0 && c[0];
var b: typeof a;
即使c
为null
或undefined
,也应该有效
对性能的影响要小得多。