Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 在扩展某些接口后强制执行作为数组的属性类型_Typescript - Fatal编程技术网

Typescript 在扩展某些接口后强制执行作为数组的属性类型

Typescript 在扩展某些接口后强制执行作为数组的属性类型,typescript,Typescript,给定一个枚举: enum操作{ 增加亮度='增加亮度', 降低亮度='降低亮度', TOGGLE='TOGGLE' } 以及两个接口可调和可切换,它们都具有tuple类型的属性操作: 接口可调光{ 明亮度:数字; 最大亮度:数字; 动作:[动作.增加亮度,动作.降低亮度] } 接口可切换{ 操作:[actions.TOGGLE] } 我希望有一个扩展可调和可切换的接口MyDevice: 接口MyDevice扩展了可调光、可切换{} 由于接口可切换和可调中的操作的类型不同,我得到了错误: 接

给定一个枚举:

enum操作{
增加亮度='增加亮度',
降低亮度='降低亮度',
TOGGLE='TOGGLE'
}
以及两个接口
可调
可切换
,它们都具有tuple类型的属性
操作

接口可调光{
明亮度:数字;
最大亮度:数字;
动作:[动作.增加亮度,动作.降低亮度]
}
接口可切换{
操作:[actions.TOGGLE]
}
我希望有一个扩展
可调
可切换
的接口
MyDevice

接口MyDevice扩展了可调光、可切换{}
由于接口
可切换
可调
中的
操作
的类型不同,我得到了错误:

接口“MyDevice”不能同时扩展类型“Dimmable”和“Toggable”。
“Dimmable”和“Toggable”类型的命名属性“actions”不相同。

因此,在扩展操作时,我在
可调
可调
中选择了
操作
,错误消失了:

接口MyDevice扩展了Omit,Omit{};
但我真正想要的是在
MyDevice
中设置属性
actions
,其中的类型如下所示:

接口MyDevice扩展忽略,忽略{

行动:[//有一些难看的解决方法,不确定你是否想达到那里..强迫TypeScript连接元组类型通常令人不快。你真的关心接口中元素的顺序和数量吗?数组对你来说足够好吗?@jcalz我不关心顺序,但数量对meRelated来说很重要你有一些难看的解决方法,不确定你是否想达到目的..强迫TypeScript连接元组类型通常令人不快。你真的关心接口中元素的顺序和数量吗?数组对你来说足够好吗?@jcalz我不关心顺序,但数量对我来说很重要