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;
}