gpt4 book ai didi

typescript - 我有两个接口(interface),我只想合并接口(interface)的 id

转载 作者:行者123 更新时间:2023-12-02 18:32:11 24 4
gpt4 key购买 nike

我正在尝试更新嵌套在对象数组内的属性,并且该对象有另一个对象数组。为了更新属性,我需要两个数组的 Id(或索引)来更新属性。所以我创建了接口(interface):

export interface ILaser {
id: 'L1' | 'L2' | 'L3' | 'L4' | 'L5' | 'L6';
name:
| 'Laser #1'
| 'Laser #2'
| 'Laser #3'
| 'Laser #4'
| 'Laser #5'
| 'Laser #6';
switchMode: Number;
pulseWidth: Number;
power: Boolean;
}

export interface IOpticalHeadUnit {
id: 'OHU1' | 'OHU2' | 'OHU3';
name:
| 'Optical Head Unit #1'
| 'Optical Head Unit #2'
| 'Optical Head Unit #3';
lasers: Array<ILaser>;
}

我想更新光学头单元内的激光功率。我创建了一个函数来获取两个 ID 并更新功率,但我现在需要创建第三个接口(interface)来纠正 ts 错误,但我只想要两个接口(interface)的 ID,所以如果我添加另一个激光或光学头单元,我将不会'不必在两个位置都进行更新。

类似这样的事情:

interface ILaserIdAndIOpticalUnitId{
laserId: ILaser.id;
opticalHeadUnitId: IOpticalHeadUnit.id;

是否可以在 typescript 中完成?

最佳答案

您需要使用方括号表示法,就像在普通 js 中一样:

export interface ILaser {
id: 'L1' | 'L2' | 'L3' | 'L4' | 'L5' | 'L6';
name:
| 'Laser #1'
| 'Laser #2'
| 'Laser #3'
| 'Laser #4'
| 'Laser #5'
| 'Laser #6';
switchMode: Number;
pulseWidth: Number;
power: Boolean;
}

export interface IOpticalHeadUnit {
id: 'OHU1' | 'OHU2' | 'OHU3';
name:
| 'Optical Head Unit #1'
| 'Optical Head Unit #2'
| 'Optical Head Unit #3';
lasers: Array<ILaser>;
}

interface ILaserIdAndIOpticalUnitId {
laserId: ILaser['id'];
opticalHeadUnitId: IOpticalHeadUnit['id']
}

Playground

关于typescript - 我有两个接口(interface),我只想合并接口(interface)的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69285268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com