如何将数字 [] 匹配仅包含数字的界面
How to turn a number[] matches an interface with only numbers included
我尝试在我的 nestJS 后端中实现行星位置的增量函数。
我的星球看起来像这样:
planets: Planet[] = [{
name: 'A',
[...]
pos: this.generatePlanetPosition(),
siege: false,
[...]
},
];
我的持仓界面:
export interface PlanetPosition {
x: number;
y: number;
}
我的功能是这样的:
generatePlanetPosition(): PlanetPosition {
[...]
let position = [this.x, this.y];
return position;
}
我收到错误消息,类型 number[](位置)缺少类型 'PlanetPosition' 中的以下属性:x,y
我怎样才能管理函数 return 既是变量又是在匹配界面的同时填充我星球中的位置?
您的接口定义了一个具有 x
和 y
属性的对象,但是 [this.x, this.y]
创建了一个包含两个元素的数组;它的类型(假设 x
和 y
是数字)是 number[]
。 number[]
不可分配给 {x: number; y: number}
。数组没有 x
或 y
属性。
如果你想从那个函数中得到一个 PlanetPosition
,return 一个具有 x
和 y
属性的对象:
generatePlanetPosition(): PlanetPosition {
// ...
let position = {x: this.x, y: this.y};
// −−−−−−−−−−−−−−−−^^^−−−−−−−−−^^−−−−−−−^
return position;
}
...再次假设 this.x
和 this.y
是数字。
我尝试在我的 nestJS 后端中实现行星位置的增量函数。 我的星球看起来像这样:
planets: Planet[] = [{
name: 'A',
[...]
pos: this.generatePlanetPosition(),
siege: false,
[...]
},
];
我的持仓界面:
export interface PlanetPosition {
x: number;
y: number;
}
我的功能是这样的:
generatePlanetPosition(): PlanetPosition {
[...]
let position = [this.x, this.y];
return position;
}
我收到错误消息,类型 number[](位置)缺少类型 'PlanetPosition' 中的以下属性:x,y
我怎样才能管理函数 return 既是变量又是在匹配界面的同时填充我星球中的位置?
您的接口定义了一个具有 x
和 y
属性的对象,但是 [this.x, this.y]
创建了一个包含两个元素的数组;它的类型(假设 x
和 y
是数字)是 number[]
。 number[]
不可分配给 {x: number; y: number}
。数组没有 x
或 y
属性。
如果你想从那个函数中得到一个 PlanetPosition
,return 一个具有 x
和 y
属性的对象:
generatePlanetPosition(): PlanetPosition {
// ...
let position = {x: this.x, y: this.y};
// −−−−−−−−−−−−−−−−^^^−−−−−−−−−^^−−−−−−−^
return position;
}
...再次假设 this.x
和 this.y
是数字。