Merge pull request #12312 from Microsoft/widen-literal-types-of-parameter-properties

Widen literal types of parameter properties
This commit is contained in:
Nathan Shively-Sanders
2016-11-16 15:51:42 -08:00
committed by GitHub
5 changed files with 48 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);
}