我们希望通过以下方式从Exact object types获得价值:
我现有文字。
// Correct
function foo(arg: 'bar', obj: {|bar: 42|}): number {
return obj[arg];
}
II 缺少文字。
// Error
function foo(arg: 'baz', obj: {|bar: 42|}): number {
return obj[arg];
// ^ Cannot get `obj[arg]` because property `baz` is missing in object type
}
III string
类型。为什么这样有效?
// Correct
function foo(arg: string, obj: {|bar: 42|}): number {
return obj[arg];
}
为什么通过字符串键访问对象返回任何内容?