@@ -5997,6 +5997,7 @@ export interface NodeLinks {
59975997 declarationRequiresScopeChange ?: boolean ; // Set by `useOuterVariableScopeInParameter` in checker when downlevel emit would change the name resolution scope inside of a parameter.
59985998 serializedTypes ?: Map < string , SerializedTypeEntry > ; // Collection of types serialized at this location
59995999 decoratorSignature ?: Signature ; // Signature for decorator as if invoked by the runtime.
6000+ parameterInitializerContainsUndefined ?: boolean ; // True if this is a parameter declaration whose type annotation contains "undefined".
60006001}
60016002
60026003/** @internal */
@@ -6042,7 +6043,8 @@ export const enum TypeFlags {
60426043 /** @internal */
60436044 Nullable = Undefined | Null ,
60446045 Literal = StringLiteral | NumberLiteral | BigIntLiteral | BooleanLiteral ,
6045- Unit = Literal | UniqueESSymbol | Nullable ,
6046+ Unit = Enum | Literal | UniqueESSymbol | Nullable ,
6047+ Freshable = Enum | Literal ,
60466048 StringOrNumberLiteral = StringLiteral | NumberLiteral ,
60476049 /** @internal */
60486050 StringOrNumberLiteralOrUnique = StringLiteral | NumberLiteral | UniqueESSymbol ,
@@ -6052,7 +6054,7 @@ export const enum TypeFlags {
60526054 /** @internal */
60536055 Intrinsic = Any | Unknown | String | Number | BigInt | Boolean | BooleanLiteral | ESSymbol | Void | Undefined | Null | Never | NonPrimitive ,
60546056 /** @internal */
6055- Primitive = String | Number | BigInt | Boolean | Enum | EnumLiteral | ESSymbol | Void | Undefined | Null | Literal | UniqueESSymbol ,
6057+ Primitive = String | Number | BigInt | Boolean | Enum | EnumLiteral | ESSymbol | Void | Undefined | Null | Literal | UniqueESSymbol | TemplateLiteral ,
60566058 StringLike = String | StringLiteral | TemplateLiteral | StringMapping ,
60576059 NumberLike = Number | NumberLiteral | Enum ,
60586060 BigIntLike = BigInt | BigIntLiteral ,
@@ -6136,22 +6138,20 @@ export interface NullableType extends IntrinsicType {
61366138 objectFlags : ObjectFlags ;
61376139}
61386140
6139- /** @internal */
6140- export interface FreshableIntrinsicType extends IntrinsicType {
6141- freshType : IntrinsicType ; // Fresh version of type
6142- regularType : IntrinsicType ; // Regular version of type
6141+ export interface FreshableType extends Type {
6142+ freshType : FreshableType ; // Fresh version of type
6143+ regularType : FreshableType ; // Regular version of type
61436144}
61446145
61456146/** @internal */
6146- export type FreshableType = LiteralType | FreshableIntrinsicType ;
6147+ export interface FreshableIntrinsicType extends FreshableType , IntrinsicType {
6148+ }
61476149
61486150// String literal types (TypeFlags.StringLiteral)
61496151// Numeric literal types (TypeFlags.NumberLiteral)
61506152// BigInt literal types (TypeFlags.BigIntLiteral)
6151- export interface LiteralType extends Type {
6153+ export interface LiteralType extends FreshableType {
61526154 value : string | number | PseudoBigInt ; // Value of literal
6153- freshType : LiteralType ; // Fresh version of type
6154- regularType : LiteralType ; // Regular version of type
61556155}
61566156
61576157// Unique symbol types (TypeFlags.UniqueESSymbol)
@@ -6173,7 +6173,7 @@ export interface BigIntLiteralType extends LiteralType {
61736173}
61746174
61756175// Enum types (TypeFlags.Enum)
6176- export interface EnumType extends Type {
6176+ export interface EnumType extends FreshableType {
61776177}
61786178
61796179// Types included in TypeFlags.ObjectFlagsType have an objectFlags property. Some ObjectFlags
0 commit comments