首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeScript:创建空的类型化容器数组

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

Stack Overflow用户
提问于 2013-04-05 13:43:23
回答 5查看 275.8K关注 0票数 251

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

当尝试在TypeScript中预分配类型化数组时,我尝试这样做:

代码语言:javascript
复制
var arr = Criminal[];

这给出了错误“检查表达式项的格式”。

我也尝试过这样做

代码语言:javascript
复制
var arr : Criminal = [];

这就产生了“无法将any[]转换为‘犯罪’”

做这件事的“TypeScript”方法是什么?

EN

回答 5

Stack Overflow用户

发布于 2013-04-05 13:43:23

由于数组文字语法的原因,在TypeScript中正确预分配类型化数组的问题有点模糊,所以它并不像我最初想象的那样直观。

正确的方法应该是

代码语言:javascript
复制
var arr : Criminal[] = [];

这将为您提供一个类型正确的、存储在变量'arr‘中的空数组

希望这对其他人有帮助!

票数 247
EN

Stack Overflow用户

发布于 2016-08-09 16:46:15

我知道这是一个老问题,但我最近遇到了一个类似的问题,不能用这种方式解决,因为我必须返回一个特定类型的空数组。

我有

代码语言:javascript
复制
return [];

其中[]Criminal[]类型。

return: Criminal[] [];return []: Criminal[];都不适合我。

乍一看,我通过在返回之前创建一个类型化变量(正如you正确报告的那样)解决了这个问题,但是(我不知道JavaScript引擎是如何工作的)它可能会产生开销,而且可读性较差。

为了全面起见,我也会在我的答案中报告这个解决方案:

代码语言:javascript
复制
let temp: Criminal[] = [];
return temp;

最终,我发现了TypeScript类型转换,它使我能够以一种更简洁、更可读(可能也更高效)的方式解决这个问题:

代码语言:javascript
复制
return <Criminal[]>[];

希望这能对未来的读者有所帮助!

票数 26
EN

Stack Overflow用户

发布于 2019-04-22 22:21:40

对于公开访问,使用如下所示:

代码语言:javascript
复制
public arr: Criminal[] = [];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15826745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档