Widen literal types of parameter properties

This commit is contained in:
Nathan Shively-Sanders 2016-11-16 15:24:42 -08:00
parent c7b0083820
commit 5dbe5f4fbd
2 changed files with 2 additions and 2 deletions

View File

@ -14744,7 +14744,7 @@ namespace ts {
function checkDeclarationInitializer(declaration: VariableLikeDeclaration) {
const type = checkExpressionCached(declaration.initializer);
return getCombinedNodeFlags(declaration) & NodeFlags.Const ||
getCombinedModifierFlags(declaration) & ModifierFlags.Readonly ||
getCombinedModifierFlags(declaration) & ModifierFlags.Readonly && !isParameterPropertyDeclaration(declaration) ||
isTypeAssertion(declaration.initializer) ? type : getWidenedLiteralType(type);
}

View File

@ -4497,7 +4497,7 @@ namespace ts {
}
}
export function isParameterPropertyDeclaration(node: ParameterDeclaration): boolean {
export function isParameterPropertyDeclaration(node: Node): boolean {
return hasModifier(node, ModifierFlags.ParameterPropertyModifier) && node.parent.kind === SyntaxKind.Constructor && isClassLike(node.parent.parent);
}