Cherry-pick PR #38351 into release-3.9

Component commits:
39e68564ff Fix regression in name resolution in parameter
This commit is contained in:
Ron Buckton 2020-05-06 16:05:15 +00:00 committed by typescript-bot
parent 90570dfe09
commit e6709a4cd4
2 changed files with 16 additions and 1 deletions

View File

@ -1887,7 +1887,9 @@ namespace ts {
lastLocation === (location as BindingElement).name && isBindingPattern(lastLocation))) {
const root = getRootDeclaration(location);
if (root.kind === SyntaxKind.Parameter) {
associatedDeclarationForContainingInitializerOrBindingName = location as BindingElement;
if (!associatedDeclarationForContainingInitializerOrBindingName) {
associatedDeclarationForContainingInitializerOrBindingName = location as BindingElement;
}
}
}
break;

View File

@ -0,0 +1,13 @@
// @target: es5, es2015, esnext
// @noEmit: true
// @noTypesAndSymbols: true
// https://github.com/microsoft/TypeScript/issues/38243
function test0({ a = 0, b = a } = {}) {
return { a, b };
}
function test1({ c: { a = 0, b = a } = {} } = {}) {
return { a, b };
}