@@ -7594,7 +7594,7 @@ namespace ts {
75947594
75957595 if (isPropertyDeclaration(declaration) && (noImplicitAny || isInJSFile(declaration))) {
75967596 // We have a property declaration with no type annotation or initializer, in noImplicitAny mode or a .js file.
7597- // Use control flow analysis of this.xxx assignments the constructor to determine the type of the property.
7597+ // Use control flow analysis of this.xxx assignments in the constructor to determine the type of the property.
75987598 const constructor = findConstructorDeclaration(declaration.parent);
75997599 const type = constructor ? getFlowTypeInConstructor(declaration.symbol, constructor) :
76007600 getEffectiveModifierFlags(declaration) & ModifierFlags.Ambient ? getTypeOfPropertyInBaseClass(declaration.symbol) :
@@ -7619,7 +7619,7 @@ namespace ts {
76197619 }
76207620
76217621 function isConstructorDeclaredProperty(symbol: Symbol) {
7622- // A propery is considered a constructor declared property when all declaration sites are this.xxx assignments,
7622+ // A property is considered a constructor declared property when all declaration sites are this.xxx assignments,
76237623 // when no declaration sites have JSDoc type annotations, and when at least one declaration site is in the body of
76247624 // a class constructor.
76257625 if (symbol.valueDeclaration && isBinaryExpression(symbol.valueDeclaration)) {
@@ -10562,7 +10562,7 @@ namespace ts {
1056210562 // Since getApparentType may return a non-reduced union or intersection type, we need to perform
1056310563 // type reduction both before and after obtaining the apparent type. For example, given a type parameter
1056410564 // 'T extends A | B', the type 'T & X' becomes 'A & X | B & X' after obtaining the apparent type, and
10565- // that type may need futher reduction to remove empty intersections.
10565+ // that type may need further reduction to remove empty intersections.
1056610566 return getReducedType(getApparentType(getReducedType(type)));
1056710567 }
1056810568
0 commit comments