开发者社区 > 云原生 > 容器服务 > 正文

TypeScript:创建一个空的类型化容器数组

我在TypeScript中创建了一个简单的逻辑游戏,叫做“犯罪三”。

当尝试在TypeScript中预分配类型化数组时,我尝试执行以下操作:

var arr = Criminal[]; 出现错误“检查表达式的格式”。

也尝试这样做

var arr : Criminal = []; 并且产生了“无法将any []转换为'Criminal'

“ TypeScript”执行此操作的方式是什么?

展开
收起
保持可爱mmm 2020-02-06 23:13:03 644 0
1 条回答
写回答
取消 提交回答
  • // 1. Explicitly declare the type var arr: Criminal[] = [];

    // 2. Via type assertion var arr = <Criminal[]>[]; var arr = [] as Criminal[];

    // 3. Using the Array constructor var arr = new Array (); 当变量声明的类型推断失败时,显式指定类型是一般的解决方案。

    使用类型断言(有时称为类型转换,但在TypeScript中不是真正的类型转换)的优点适用于任何表达式,因此即使没有声明变量也可以使用它。类型声明有两种语法,但是如果您关心的话,只有后者可以与JSX结合使用。

    使用Array构造函数只会帮助您解决此特定用例,但我个人认为这是最易读的。但是,在运行时对性能有轻微影响 *。另外,如果有人疯狂地重新定义Array构造函数,则含义可能会改变。

    这是个人喜好问题,但我发现第三个选项最容易理解。在绝大多数情况下,上述缺点可以忽略不计,而可读性是最重要的因素。

    *: 有趣的事实; 在撰写本文时,Chrome中的性能差异为60%,而Firefox中没有可测量的性能差异。

    问题来源于stack overflow

    2020-02-06 23:13:27
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
云原生架构容器&微服务优秀案例集 立即下载
微服务x容器开源开发者 Meetup 上海站 立即下载
冬季实战营第四期:零基础容器技术实战 立即下载