Typescript 如何将类型转换为未定义或空?

Typescript 如何将类型转换为未定义或空?,typescript,Typescript,我想强迫一个物体离开范围,比如 let obj: typeA = aTypeAobj; function del(obj: typeA): void { obj = undefined; } 但是strict模式下的Typescript不允许我这样做 我可以这样做 let obj: typeA = aTypeAobj; function del(obj: typeA | undefined): void { obj = undefined; } 但在这种情况下,我也可以传递任何未

我想强迫一个物体离开范围,比如

let obj: typeA = aTypeAobj;

function del(obj: typeA): void {
  obj = undefined;
}
但是
strict
模式下的Typescript不允许我这样做

我可以这样做

let obj: typeA = aTypeAobj;

function del(obj: typeA | undefined): void {
  obj = undefined;
}
但在这种情况下,我也可以传递任何
未定义的
类型

有没有办法在函数体中输入cast,比如

let obj: typeA = aTypeAobj;

function del(obj: typeA): void {
  obj<typeA | undefined> = undefined; // this doesn't work but I'm asking something like this
}
让obj:typeA=aTypeAobj;
功能del(对象:类型A):无效{
obj=undefined;//这不起作用,但我问的是这样的问题
}
然后,我可以利用ts将任何
undefined
type作为参数阻止到
del()
,并将
typeA
对象分配到
undefined


谢谢。

为了允许将变量设置为
未定义
,即使它们没有声明为允许,您也可以将它们强制转换为
任何
。例如:

(<any>obj) = undefined
如果您想更严格,可以使用:

(obj as (undefined | typeA)) = undefined;
或:

(obj)=未定义;

为了允许将变量设置为
未定义
,即使它们未声明为允许,您也可以将它们强制转换为
任何
。例如:

(<any>obj) = undefined
如果您想更严格,可以使用:

(obj as (undefined | typeA)) = undefined;
或:

(obj)=未定义;