Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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
Javascript 整个typescript界面的回退?_Javascript_Typescript - Fatal编程技术网

Javascript 整个typescript界面的回退?

Javascript 整个typescript界面的回退?,javascript,typescript,Javascript,Typescript,我知道我们可以在接口中使用?设置可选属性,但如何使整个接口回退到null或emtpy对象 interface MyType { abc: string def?: number } 我试过了 interface MyType { abc: string def?: number } | {} 但是现在运气好了。我发现最简单的方法是不污染超过必要的类型,并有一个后备方案,例如: var MyObject: MyType | {} | undefined; // The

我知道我们可以在接口中使用
设置可选属性,但如何使整个接口回退到null或emtpy对象

interface MyType {
   abc: string
   def?: number
}
我试过了

interface MyType {
   abc: string
   def?: number
} | {}

但是现在运气好了。

我发现最简单的方法是不污染超过必要的类型,并有一个后备方案,例如:

var MyObject: MyType | {} | undefined;

// Then it can take
MyObject = {};
MyObject = undefined;
MyObject = {abc:"abc"}
MyObject = {abc:"abc", def:1}

我会发现最简单的方法是不超过必要的污染类型,并有一个后备方案,例如:

var MyObject: MyType | {} | undefined;

// Then it can take
MyObject = {};
MyObject = undefined;
MyObject = {abc:"abc"}
MyObject = {abc:"abc", def:1}

您可以使用分部类型

接口MyType{
abc:字符串
定义?:编号
}
常量obj:Partial={}

您可以使用分部类型

接口MyType{
abc:字符串
定义?:编号
}
常量obj:Partial={}

这在某种程度上解决了这个问题,但这样做的代价是增加了类型的复杂性。此外,partial不是一个通用的解决方案,它允许不应该允许的,例如
{def:1}
。这在某种程度上解决了它,但这样做的代价是增加了类型的复杂性。此外,partial不是一个通用解决方案,它允许例如
{def:1}
,这是不允许的。