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)=未定义;