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
Javascript 如何防止用未定义的对象填充此对象?_Javascript_Typescript - Fatal编程技术网

Javascript 如何防止用未定义的对象填充此对象?

Javascript 如何防止用未定义的对象填充此对象?,javascript,typescript,Javascript,Typescript,当level以未定义的值开始时会发生这种情况 这段代码在JavaScript中运行良好,但当我使用TypeScript时,它就不起作用了 interface Find { level?: string; } let find: Find = {}; if (!!level) { find.level = level; } find的最终值: {"level":"undefined"} 而不仅仅是: {} 您具有以下值: {&qu

level
以未定义的值开始时会发生这种情况

这段代码在JavaScript中运行良好,但当我使用TypeScript时,它就不起作用了

interface Find {
    level?: string;
}

let find: Find = {};

if (!!level) {
     find.level = level;
}
find的最终值:

{"level":"undefined"}
而不仅仅是:

{}
您具有以下值:

{"level":"undefined"}
如果它是
未定义的
,您将看到:

{"level":undefined}
您实际拥有的是字符串
“undefined”

修理 现在您将获得
{}

更多
TypeScript不会更改JavaScript运行时行为。

TypeScript不会更改代码的行为(或者不会太多)。未定义的值根本不应该出现。如何打印“最终价值”?您的代码中没有关于此打印的内容。请考虑
!!级别
,任何字符串值(包括
“未定义”
)将在您的条件下计算为true。
interface Find {
    level?: string;
}

let find: Find = {};

if (!!level && level !== "undefined") {
     find.level = level;
}