【发布时间】:2019-06-18 12:11:39
【问题描述】:
如果我有类似的东西
array1: string[] = ['foo', 'bar'];
还有一个类似的界面
export interface MyObject { name: string; }
如何将 array1 映射到另一个 MyObject 类型的数组?
array2 : MyObject[];
array2 = array1.map(s => ...);
我想过类似的事情
array2 = array1.map<MyObject>(s => new MyObject(...));
【问题讨论】:
-
只有当有一个名为
MyObject的构造函数 value 生成 typeMyObject的实例时才有效。由于MyObject只是一个接口,您可以通过object literal 来创建一个接口,例如{name: s}。这是作业还是什么?只是想知道我们应该在这里提供多少帮助。 -
不是作业,我从供应商(公司)处购买的 Angular 应用程序的代码改进
-
那么
array1.map(s => ({name: s}))应该适合你。 (编辑:用括号括起来的表达式,因为 js 在这里错误地解释了s => {...}) -
不,不是,编译器说
void is not assignable to type,但这显然在这里工作map(s => ({name: s})) -
我的编辑没有及时给你,哦,好吧
标签: typescript