类型 'undefined' 不可分配给类型 'T'
Type 'undefined' is not assignable to type 'T'
我用 typeScript 创建了一个地图,即
readonly stageTableMap: Map<string, SecureBucket>;
在这里,我按照以下方式将字符串和 SecureBucket 变量放入映射中。
stageTableMap.set(table, tableBucket);
当我按以下方式从此地图检索值时:-
SecureBucket bucket = stageTableMap.get(table);
这是给出如下错误:-
TS2322: Type 'SecureBucket' | undefined is not assignable to type 'SecureBucket'.
当我尝试将数据类型更改为 SecureBucket | undefined
时,它正在工作,但我想在不更改数据类型的情况下使用它。
我找到了这个 ,但它只是指将数据类型更改为 'SecureBucket | undefined '.
有人可以帮忙吗
它将成为 SecureBucket || undefined 因为它不能保证你传递给它的键会在你的地图中,如果键不存在于地图中它会抛出 undefined 作为默认值。
使用强制转换 stageTableMap.get(table) as SecureBucket
可能会给您错误的安全假设,而实际上如果您在 运行 时传递代码中不存在的密钥,它将 return 未定义,因此 SecureBucket | undefined
更符合您的代码
如果您想在代码的某处使用 return 类型的 SecureBucket,您希望使用 SecureBucket 的属性,所以在这种情况下,您可能应该检查密钥是否存在,如果不存在再
我用 typeScript 创建了一个地图,即
readonly stageTableMap: Map<string, SecureBucket>;
在这里,我按照以下方式将字符串和 SecureBucket 变量放入映射中。
stageTableMap.set(table, tableBucket);
当我按以下方式从此地图检索值时:-
SecureBucket bucket = stageTableMap.get(table);
这是给出如下错误:-
TS2322: Type 'SecureBucket' | undefined is not assignable to type 'SecureBucket'.
当我尝试将数据类型更改为 SecureBucket | undefined
时,它正在工作,但我想在不更改数据类型的情况下使用它。
我找到了这个
有人可以帮忙吗
它将成为 SecureBucket || undefined 因为它不能保证你传递给它的键会在你的地图中,如果键不存在于地图中它会抛出 undefined 作为默认值。
使用强制转换 stageTableMap.get(table) as SecureBucket
可能会给您错误的安全假设,而实际上如果您在 运行 时传递代码中不存在的密钥,它将 return 未定义,因此 SecureBucket | undefined
更符合您的代码
如果您想在代码的某处使用 return 类型的 SecureBucket,您希望使用 SecureBucket 的属性,所以在这种情况下,您可能应该检查密钥是否存在,如果不存在再