【问题标题】:Typescript array initialization打字稿数组初始化
【发布时间】:2018-06-01 06:48:05
【问题描述】:

这里我将变量results定义为一个字符串数组:

let results: string[]; 

在下面,我指定了一个值来启动:

results['searchCaption'] = "";

然后,节目以ERROR TypeError: Cannot set property 'searchCaption' of undefined 结束

我在这里缺少什么?我需要先为它定义一个接口吗?

【问题讨论】:

  • 你初始化数组了吗?即:let results: string[] = []?从错误中可以看出结果未定义,表明您从未为其分配任何内容。
  • string[] 只定义了变量的类型。它没有分配任何东西。
  • results['searchCaption'] = ""; 不是有效的数组语法。数组是基于索引的 - 对象是基于键的。
  • 完美指针!当然是这样。一直以来,我都在想let results: string[]; 无论如何都会以 results = [] 开始!我认为在 ASP 中,情况并非如此,我的记忆误导了我。谢谢!克赖斯!
  • 很高兴为您提供帮助,但根据 @tymeJV 的评论,您将事物分配给数组,就好像它是一个对象一样,这虽然可能,但绝对是一种反模式。

标签: typescript


【解决方案1】:

你想要的是这个:

let results = new Array<string>();
results['searchCaption'] = '';

【讨论】:

  • 我会接受这个答案,尽管我知道以这种方式使用数组似乎有一种反模式。
猜你喜欢
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
相关资源
最近更新 更多