@@ -171,6 +171,7 @@ namespace ts {
171171 StringKeyword ,
172172 SymbolKeyword ,
173173 TypeKeyword ,
174+ UndefinedKeyword ,
174175 FromKeyword ,
175176 GlobalKeyword ,
176177 OfKeyword , // LastKeyword and LastToken
@@ -240,6 +241,7 @@ namespace ts {
240241 OmittedExpression ,
241242 ExpressionWithTypeArguments ,
242243 AsExpression ,
244+ NonNullExpression ,
243245
244246 // Misc
245247 TemplateSpan ,
@@ -475,6 +477,11 @@ namespace ts {
475477 originalKeywordKind ?: SyntaxKind ; // Original syntaxKind which get set so that we can report an error later
476478 }
477479
480+ // Transient identifier node (marked by id === -1)
481+ export interface TransientIdentifier extends Identifier {
482+ resolvedSymbol : Symbol ;
483+ }
484+
478485 // @kind (SyntaxKind.QualifiedName)
479486 export interface QualifiedName extends Node {
480487 // Must have same layout as PropertyAccess
@@ -968,6 +975,8 @@ namespace ts {
968975 name : Identifier ;
969976 }
970977
978+ export type IdentifierOrPropertyAccess = Identifier | PropertyAccessExpression ;
979+
971980 // @kind (SyntaxKind.ElementAccessExpression)
972981 export interface ElementAccessExpression extends MemberExpression {
973982 expression : LeftHandSideExpression ;
@@ -1012,6 +1021,11 @@ namespace ts {
10121021
10131022 export type AssertionExpression = TypeAssertion | AsExpression ;
10141023
1024+ // @kind (SyntaxKind.NonNullExpression)
1025+ export interface NonNullExpression extends LeftHandSideExpression {
1026+ expression : Expression ;
1027+ }
1028+
10151029 /// A JSX expression of the form <TagName attrs>...</TagName>
10161030 // @kind (SyntaxKind.JsxElement)
10171031 export interface JsxElement extends PrimaryExpression {
@@ -2029,7 +2043,9 @@ namespace ts {
20292043 exportsChecked ?: boolean ; // True if exports of external module have been checked
20302044 isDeclarationWithCollidingName ?: boolean ; // True if symbol is block scoped redeclaration
20312045 bindingElement ?: BindingElement ; // Binding element associated with property symbol
2032- exportsSomeValue ?: boolean ; // true if module exports some value (not just types)
2046+ exportsSomeValue ?: boolean ; // True if module exports some value (not just types)
2047+ firstAssignmentChecked ?: boolean ; // True if first assignment node has been computed
2048+ firstAssignment ?: Node ; // First assignment node (undefined if no assignments)
20332049 }
20342050
20352051 /* @internal */
@@ -2072,7 +2088,7 @@ namespace ts {
20722088 isVisible ?: boolean ; // Is this node visible
20732089 generatedName ?: string ; // Generated name for module, enum, or import declaration
20742090 generatedNames ?: Map < string > ; // Generated names table for source file
2075- assignmentChecks ?: Map < boolean > ; // Cache of assignment checks
2091+ assignmentMap ?: Map < boolean > ; // Cached map of references assigned within this node
20762092 hasReportedStatementInAmbientContext ?: boolean ; // Cache boolean if we report statements in ambient context
20772093 importOnRightSide ?: Symbol ; // for import declarations - import that appear on the right side
20782094 jsxFlags ?: JsxFlags ; // flags for knowing what kind of element/attributes we're dealing with
@@ -2106,7 +2122,7 @@ namespace ts {
21062122 /* @internal */
21072123 FreshObjectLiteral = 0x00100000 , // Fresh object literal type
21082124 /* @internal */
2109- ContainsUndefinedOrNull = 0x00200000 , // Type is or contains Undefined or Null type
2125+ ContainsUndefinedOrNull = 0x00200000 , // Type is or contains undefined or null type
21102126 /* @internal */
21112127 ContainsObjectLiteral = 0x00400000 , // Type is or contains object literal type
21122128 /* @internal */
@@ -2115,6 +2131,8 @@ namespace ts {
21152131 ThisType = 0x02000000 , // This type
21162132 ObjectLiteralPatternWithComputedProperties = 0x04000000 , // Object literal type implied by binding pattern has computed properties
21172133
2134+ /* @internal */
2135+ Nullable = Undefined | Null ,
21182136 /* @internal */
21192137 Intrinsic = Any | String | Number | Boolean | ESSymbol | Void | Undefined | Null ,
21202138 /* @internal */
@@ -2439,6 +2457,7 @@ namespace ts {
24392457 allowSyntheticDefaultImports ?: boolean ;
24402458 allowJs ?: boolean ;
24412459 noImplicitUseStrict ?: boolean ;
2460+ strictNullChecks ?: boolean ;
24422461 lib ?: string [ ] ;
24432462 /* @internal */ stripInternal ?: boolean ;
24442463
0 commit comments