是否可以在一个属性依赖于另一个属性的接口中使用解构? 我的论据如下:
interface PropsVariationA {
functionToExecute?: () => void;
executeExtraFunction: true;
}
interface PropsVariationB {
executeExtraFunction: false;
}
type Props = PropsVariationA | PropsVariationB;
因此,当我尝试使用它进行销毁时,我(显然)会收到错误消息:
function SomeFunctionWithDestructuring({
executeExtraFunction,
functionToExecute = () => {} // Error: property 'functionToExecute' doesnt exist on type 'Props'
}: Props) {
if (executeExtraFunction) functionToExecute();
return null;
}
查看此demo。
我设法使其在不破坏的情况下正常工作,但我想知道是否有办法。
答案 0 :(得分:0)
如果在PropsVariationB中将functionToExecute设置为undefined,那么它将起作用:
hello="this is a value"
this=hello[2::2]
print(this)`