【问题标题】:How to declare that a variable has the type of an array element in TypeScript?如何在 TypeScript 中声明变量具有数组元素的类型?
【发布时间】:2015-02-26 00:36:43
【问题描述】:

在 TypeScript 中,可以声明,例如,var bvar 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;

有没有更好的办法?

【问题讨论】:

    标签: typescript typeof


    【解决方案1】:

    有没有更好的办法?

    没有。它没有专门的语法。在没有专用语法的情况下,您基本上需要接受T[] 并为您提供T 的东西。你的内联函数是这种通用用法的一个很好的例子。

    【讨论】:

      【解决方案2】:

      在语言规范中找不到任何关于此的内容,对我来说这似乎太琐碎而无法实现;至少在 TypeScript 所处的当前阶段。

      但是,更短/更简单的解决方法可能是:

      var a = 0 && c[0];
      var b: typeof a;
      

      即使cnullundefined 也应该有效。
      对性能的影响也小得多。

      【讨论】:

        猜你喜欢
        • 2021-07-27
        • 2018-08-23
        • 1970-01-01
        • 2022-11-25
        • 2016-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-27
        相关资源
        最近更新 更多