【发布时间】:2020-04-23 08:53:32
【问题描述】:
我有一个这样声明的组件的输入。
@Input() rows: (string | number)[][];
我知道这是一个字符串数组(string 或number),我有一个数组。所以数据是一个矩阵,二维,带有字符串(浮点数,但在我的情况下,它不是)。
意识到并非每一行都有相同的元素计数,我不得不将矩阵重新加工成字典,即对象数组(其中对象具有我们一无所知的属性,除了那些只是字符串) .这是我最好的尝试。
@Input() rows: { [key: string]: (string | number) }[];
虽然计算机似乎接受它,但我担心两件事。第一个是它的语法完全错误,而且由于测试不佳,我只是不知道这个问题。第二个问题是,无论正确性如何,我都创造了一个眼睛不应该看到的残暴之谜(即有一种非常简洁的方式来表达相同的数据结构)。
如何以比建议的方式更好的方式声明上述指定的类型?
【问题讨论】:
-
上述类型没有问题。您可以使用“快捷方式”
Record<string, string | number>[],但实际上是一样的 -
@AlekseyL。虽然感谢您的反馈并了解您的来源,但我非常希望将您的建议作为已接受答案的一部分。为了将来的读者,我将把它抢走并修改为下面的一个。这样,他们可以自行决定是专用接口还是通用 TS 类型。
-
好的,继续???
标签: typescript