Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Herebyfile.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,7 @@ const enumDefs = [
{ name: "OuterExpressionKinds", goPrefix: "OEK", goFile: "internal/ast/utilities.go", outDir: "_packages/native-preview/src/enums" },
{ name: "ModifierFlags", goPrefix: "ModifierFlags", goFile: "internal/ast/modifierflags.go", outDir: "_packages/native-preview/src/enums" },
{ name: "TokenFlags", goPrefix: "TokenFlags", goFile: "internal/ast/tokenflags.go", outDir: "_packages/native-preview/src/enums", constEnum: true },
{ name: "NodeBuilderFlags", goPrefix: "Flags", goFile: "internal/nodebuilder/types.go", outDir: "_packages/native-preview/src/enums" },
];

/**
Expand Down
70 changes: 69 additions & 1 deletion _packages/native-preview/src/api/async/api.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/// <reference path="../node/node.ts" preserve="true" />
import { DiagnosticCategory } from "#enums/diagnosticCategory";
import { ElementFlags } from "#enums/elementFlags";
import { NodeBuilderFlags } from "#enums/nodeBuilderFlags";
import { ObjectFlags } from "#enums/objectFlags";
import { SignatureFlags } from "#enums/signatureFlags";
import { SignatureKind } from "#enums/signatureKind";
Expand Down Expand Up @@ -88,7 +89,7 @@ import type {
UnionType,
} from "./types.ts";

export { DiagnosticCategory, ElementFlags, ModifierFlags, ObjectFlags, SignatureFlags, SignatureKind, SymbolFlags, TypeFlags, TypePredicateKind };
export { DiagnosticCategory, ElementFlags, ModifierFlags, NodeBuilderFlags, ObjectFlags, SignatureFlags, SignatureKind, SymbolFlags, TypeFlags, TypePredicateKind };
export type { APIOptions, ClientSocketOptions, ClientSpawnOptions, DocumentIdentifier, DocumentPosition, LSPConnectionOptions };
export type { AssertsIdentifierTypePredicate, AssertsThisTypePredicate, ConditionalType, Diagnostic, IdentifierTypePredicate, IndexedAccessType, IndexInfo, IndexType, InterfaceType, IntersectionType, LiteralType, ObjectType, StringMappingType, SubstitutionType, TemplateLiteralType, ThisTypePredicate, TupleType, Type, TypeParameter, TypePredicate, TypePredicateBase, TypeReference, UnionOrIntersectionType, UnionType };
export { documentURIToFileName, fileNameToDocumentURI } from "../path.ts";
Expand Down Expand Up @@ -538,6 +539,15 @@ export class Checker {
return data.map(d => this.objectRegistry.getOrCreateSignature(d));
}

async getResolvedSignature(node: Node): Promise<Signature | undefined> {
const data = await this.client.apiRequest<SignatureResponse | null>("getResolvedSignature", {
snapshot: this.snapshotId,
project: this.projectId,
location: getNodeId(node),
});
return data ? this.objectRegistry.getOrCreateSignature(data) : undefined;
}

getTypeAtPosition(file: DocumentIdentifier, position: number): Promise<Type | undefined>;
getTypeAtPosition(file: DocumentIdentifier, positions: readonly number[]): Promise<(Type | undefined)[]>;
async getTypeAtPosition(file: DocumentIdentifier, positionOrPositions: number | readonly number[]): Promise<Type | (Type | undefined)[] | undefined> {
Expand Down Expand Up @@ -604,6 +614,51 @@ export class Checker {
return data ? this.objectRegistry.getOrCreateType(data) : undefined;
}

async getNonNullableType(type: Type): Promise<Type | undefined> {
const data = await this.client.apiRequest<TypeResponse | null>("getNonNullableType", {
snapshot: this.snapshotId,
project: this.projectId,
type: type.id,
});
return data ? this.objectRegistry.getOrCreateType(data) : undefined;
}

async getTypeFromTypeNode(node: TypeNode): Promise<Type | undefined> {
const data = await this.client.apiRequest<TypeResponse | null>("getTypeFromTypeNode", {
snapshot: this.snapshotId,
project: this.projectId,
location: getNodeId(node),
});
return data ? this.objectRegistry.getOrCreateType(data) : undefined;
}

async getWidenedType(type: Type): Promise<Type | undefined> {
const data = await this.client.apiRequest<TypeResponse | null>("getWidenedType", {
snapshot: this.snapshotId,
project: this.projectId,
type: type.id,
});
return data ? this.objectRegistry.getOrCreateType(data) : undefined;
}

async getParameterType(signature: Signature, index: number): Promise<Type | undefined> {
const data = await this.client.apiRequest<TypeResponse | null>("getParameterType", {
snapshot: this.snapshotId,
project: this.projectId,
signature: signature.id,
index,
});
return data ? this.objectRegistry.getOrCreateType(data) : undefined;
}

async isArrayLikeType(type: Type): Promise<boolean> {
return this.client.apiRequest<boolean>("isArrayLikeType", {
snapshot: this.snapshotId,
project: this.projectId,
type: type.id,
});
}

async getShorthandAssignmentValueSymbol(node: Node): Promise<Symbol | undefined> {
const data = await this.client.apiRequest<SymbolResponse | null>("getShorthandAssignmentValueSymbol", {
snapshot: this.snapshotId,
Expand Down Expand Up @@ -677,6 +732,19 @@ export class Checker {
return decodeNode(binaryData) as TypeNode;
}

async signatureToSignatureDeclaration(signature: Signature, kind: SyntaxKind, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): Promise<Node | undefined> {
const binaryData = await this.client.apiRequestBinary("signatureToSignatureDeclaration", {
snapshot: this.snapshotId,
project: this.projectId,
signature: signature.id,
kind,
location: enclosingDeclaration ? getNodeId(enclosingDeclaration) : undefined,
flags,
});
if (!binaryData) return undefined;
return decodeNode(binaryData) as Node;
}

async typeToString(type: Type, enclosingDeclaration?: Node, flags?: number): Promise<string> {
return this.client.apiRequest<string>("typeToString", {
snapshot: this.snapshotId,
Expand Down
70 changes: 69 additions & 1 deletion _packages/native-preview/src/api/sync/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
/// <reference path="../node/node.ts" preserve="true" />
import { DiagnosticCategory } from "#enums/diagnosticCategory";
import { ElementFlags } from "#enums/elementFlags";
import { NodeBuilderFlags } from "#enums/nodeBuilderFlags";
import { ObjectFlags } from "#enums/objectFlags";
import { SignatureFlags } from "#enums/signatureFlags";
import { SignatureKind } from "#enums/signatureKind";
Expand Down Expand Up @@ -96,7 +97,7 @@ import type {
UnionType,
} from "./types.ts";

export { DiagnosticCategory, ElementFlags, ModifierFlags, ObjectFlags, SignatureFlags, SignatureKind, SymbolFlags, TypeFlags, TypePredicateKind };
export { DiagnosticCategory, ElementFlags, ModifierFlags, NodeBuilderFlags, ObjectFlags, SignatureFlags, SignatureKind, SymbolFlags, TypeFlags, TypePredicateKind };
export type { APIOptions, ClientSocketOptions, ClientSpawnOptions, DocumentIdentifier, DocumentPosition, LSPConnectionOptions };
export type { AssertsIdentifierTypePredicate, AssertsThisTypePredicate, ConditionalType, Diagnostic, IdentifierTypePredicate, IndexedAccessType, IndexInfo, IndexType, InterfaceType, IntersectionType, LiteralType, ObjectType, StringMappingType, SubstitutionType, TemplateLiteralType, ThisTypePredicate, TupleType, Type, TypeParameter, TypePredicate, TypePredicateBase, TypeReference, UnionOrIntersectionType, UnionType };
export { documentURIToFileName, fileNameToDocumentURI } from "../path.ts";
Expand Down Expand Up @@ -546,6 +547,15 @@ export class Checker {
return data.map(d => this.objectRegistry.getOrCreateSignature(d));
}

getResolvedSignature(node: Node): Signature | undefined {
const data = this.client.apiRequest<SignatureResponse | null>("getResolvedSignature", {
snapshot: this.snapshotId,
project: this.projectId,
location: getNodeId(node),
});
return data ? this.objectRegistry.getOrCreateSignature(data) : undefined;
}

getTypeAtPosition(file: DocumentIdentifier, position: number): Type | undefined;
getTypeAtPosition(file: DocumentIdentifier, positions: readonly number[]): (Type | undefined)[];
getTypeAtPosition(file: DocumentIdentifier, positionOrPositions: number | readonly number[]): Type | (Type | undefined)[] | undefined {
Expand Down Expand Up @@ -612,6 +622,51 @@ export class Checker {
return data ? this.objectRegistry.getOrCreateType(data) : undefined;
}

getNonNullableType(type: Type): Type | undefined {
const data = this.client.apiRequest<TypeResponse | null>("getNonNullableType", {
snapshot: this.snapshotId,
project: this.projectId,
type: type.id,
});
return data ? this.objectRegistry.getOrCreateType(data) : undefined;
}

getTypeFromTypeNode(node: TypeNode): Type | undefined {
const data = this.client.apiRequest<TypeResponse | null>("getTypeFromTypeNode", {
snapshot: this.snapshotId,
project: this.projectId,
location: getNodeId(node),
});
return data ? this.objectRegistry.getOrCreateType(data) : undefined;
}

getWidenedType(type: Type): Type | undefined {
const data = this.client.apiRequest<TypeResponse | null>("getWidenedType", {
snapshot: this.snapshotId,
project: this.projectId,
type: type.id,
});
return data ? this.objectRegistry.getOrCreateType(data) : undefined;
}

getParameterType(signature: Signature, index: number): Type | undefined {
const data = this.client.apiRequest<TypeResponse | null>("getParameterType", {
snapshot: this.snapshotId,
project: this.projectId,
signature: signature.id,
index,
});
return data ? this.objectRegistry.getOrCreateType(data) : undefined;
}

isArrayLikeType(type: Type): boolean {
return this.client.apiRequest<boolean>("isArrayLikeType", {
snapshot: this.snapshotId,
project: this.projectId,
type: type.id,
});
}

getShorthandAssignmentValueSymbol(node: Node): Symbol | undefined {
const data = this.client.apiRequest<SymbolResponse | null>("getShorthandAssignmentValueSymbol", {
snapshot: this.snapshotId,
Expand Down Expand Up @@ -685,6 +740,19 @@ export class Checker {
return decodeNode(binaryData) as TypeNode;
}

signatureToSignatureDeclaration(signature: Signature, kind: SyntaxKind, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): Node | undefined {
const binaryData = this.client.apiRequestBinary("signatureToSignatureDeclaration", {
snapshot: this.snapshotId,
project: this.projectId,
signature: signature.id,
kind,
location: enclosingDeclaration ? getNodeId(enclosingDeclaration) : undefined,
flags,
});
if (!binaryData) return undefined;
return decodeNode(binaryData) as Node;
}

typeToString(type: Type, enclosingDeclaration?: Node, flags?: number): string {
return this.client.apiRequest<string>("typeToString", {
snapshot: this.snapshotId,
Expand Down
37 changes: 37 additions & 0 deletions _packages/native-preview/src/enums/nodeBuilderFlags.enum.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// Code generated by Herebyfile.mjs generate:enums from internal/nodebuilder/types.go. DO NOT EDIT.

export enum NodeBuilderFlags {
None = 0,
NoTruncation = 1 << 0,
WriteArrayAsGenericType = 1 << 1,
GenerateNamesForShadowedTypeParams = 1 << 2,
UseStructuralFallback = 1 << 3,
ForbidIndexedAccessSymbolReferences = 1 << 4,
WriteTypeArgumentsOfSignature = 1 << 5,
UseFullyQualifiedType = 1 << 6,
UseOnlyExternalAliasing = 1 << 7,
SuppressAnyReturnType = 1 << 8,
WriteTypeParametersInQualifiedName = 1 << 9,
MultilineObjectLiterals = 1 << 10,
WriteClassExpressionAsTypeLiteral = 1 << 11,
UseTypeOfFunction = 1 << 12,
OmitParameterModifiers = 1 << 13,
UseAliasDefinedOutsideCurrentScope = 1 << 14,
UseSingleQuotesForStringLiteralType = 1 << 28,
NoTypeReduction = 1 << 29,
UseInstantiationExpressions = 1 << 30,
OmitThisParameter = 1 << 25,
WriteCallStyleSignature = 1 << 27,
AllowThisInObjectLiteral = 1 << 15,
AllowQualifiedNameInPlaceOfIdentifier = 1 << 16,
AllowAnonymousIdentifier = 1 << 17,
AllowEmptyUnionOrIntersection = 1 << 18,
AllowEmptyTuple = 1 << 19,
AllowUniqueESSymbolType = 1 << 20,
AllowEmptyIndexInfoType = 1 << 21,
AllowNodeModulesRelativePaths = 1 << 26,
IgnoreErrors = AllowThisInObjectLiteral | AllowQualifiedNameInPlaceOfIdentifier | AllowAnonymousIdentifier | AllowEmptyUnionOrIntersection | AllowEmptyTuple | AllowEmptyIndexInfoType | AllowNodeModulesRelativePaths,
InObjectTypeLiteral = 1 << 22,
InTypeAlias = 1 << 23,
InInitialEntityName = 1 << 24,
}
37 changes: 37 additions & 0 deletions _packages/native-preview/src/enums/nodeBuilderFlags.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// Code generated by Herebyfile.mjs generate:enums from internal/nodebuilder/types.go. DO NOT EDIT.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see a change to Herebyfile; where did this enum come from?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated that and re-generated

export var NodeBuilderFlags: any;
(function (NodeBuilderFlags) {
NodeBuilderFlags[NodeBuilderFlags["None"] = 0] = "None";
NodeBuilderFlags[NodeBuilderFlags["NoTruncation"] = 1] = "NoTruncation";
NodeBuilderFlags[NodeBuilderFlags["WriteArrayAsGenericType"] = 2] = "WriteArrayAsGenericType";
NodeBuilderFlags[NodeBuilderFlags["GenerateNamesForShadowedTypeParams"] = 4] = "GenerateNamesForShadowedTypeParams";
NodeBuilderFlags[NodeBuilderFlags["UseStructuralFallback"] = 8] = "UseStructuralFallback";
NodeBuilderFlags[NodeBuilderFlags["ForbidIndexedAccessSymbolReferences"] = 16] = "ForbidIndexedAccessSymbolReferences";
NodeBuilderFlags[NodeBuilderFlags["WriteTypeArgumentsOfSignature"] = 32] = "WriteTypeArgumentsOfSignature";
NodeBuilderFlags[NodeBuilderFlags["UseFullyQualifiedType"] = 64] = "UseFullyQualifiedType";
NodeBuilderFlags[NodeBuilderFlags["UseOnlyExternalAliasing"] = 128] = "UseOnlyExternalAliasing";
NodeBuilderFlags[NodeBuilderFlags["SuppressAnyReturnType"] = 256] = "SuppressAnyReturnType";
NodeBuilderFlags[NodeBuilderFlags["WriteTypeParametersInQualifiedName"] = 512] = "WriteTypeParametersInQualifiedName";
NodeBuilderFlags[NodeBuilderFlags["MultilineObjectLiterals"] = 1024] = "MultilineObjectLiterals";
NodeBuilderFlags[NodeBuilderFlags["WriteClassExpressionAsTypeLiteral"] = 2048] = "WriteClassExpressionAsTypeLiteral";
NodeBuilderFlags[NodeBuilderFlags["UseTypeOfFunction"] = 4096] = "UseTypeOfFunction";
NodeBuilderFlags[NodeBuilderFlags["OmitParameterModifiers"] = 8192] = "OmitParameterModifiers";
NodeBuilderFlags[NodeBuilderFlags["UseAliasDefinedOutsideCurrentScope"] = 16384] = "UseAliasDefinedOutsideCurrentScope";
NodeBuilderFlags[NodeBuilderFlags["UseSingleQuotesForStringLiteralType"] = 268435456] = "UseSingleQuotesForStringLiteralType";
NodeBuilderFlags[NodeBuilderFlags["NoTypeReduction"] = 536870912] = "NoTypeReduction";
NodeBuilderFlags[NodeBuilderFlags["UseInstantiationExpressions"] = 1073741824] = "UseInstantiationExpressions";
NodeBuilderFlags[NodeBuilderFlags["OmitThisParameter"] = 33554432] = "OmitThisParameter";
NodeBuilderFlags[NodeBuilderFlags["WriteCallStyleSignature"] = 134217728] = "WriteCallStyleSignature";
NodeBuilderFlags[NodeBuilderFlags["AllowThisInObjectLiteral"] = 32768] = "AllowThisInObjectLiteral";
NodeBuilderFlags[NodeBuilderFlags["AllowQualifiedNameInPlaceOfIdentifier"] = 65536] = "AllowQualifiedNameInPlaceOfIdentifier";
NodeBuilderFlags[NodeBuilderFlags["AllowAnonymousIdentifier"] = 131072] = "AllowAnonymousIdentifier";
NodeBuilderFlags[NodeBuilderFlags["AllowEmptyUnionOrIntersection"] = 262144] = "AllowEmptyUnionOrIntersection";
NodeBuilderFlags[NodeBuilderFlags["AllowEmptyTuple"] = 524288] = "AllowEmptyTuple";
NodeBuilderFlags[NodeBuilderFlags["AllowUniqueESSymbolType"] = 1048576] = "AllowUniqueESSymbolType";
NodeBuilderFlags[NodeBuilderFlags["AllowEmptyIndexInfoType"] = 2097152] = "AllowEmptyIndexInfoType";
NodeBuilderFlags[NodeBuilderFlags["AllowNodeModulesRelativePaths"] = 67108864] = "AllowNodeModulesRelativePaths";
NodeBuilderFlags[NodeBuilderFlags["IgnoreErrors"] = 70221824] = "IgnoreErrors";
NodeBuilderFlags[NodeBuilderFlags["InObjectTypeLiteral"] = 4194304] = "InObjectTypeLiteral";
NodeBuilderFlags[NodeBuilderFlags["InTypeAlias"] = 8388608] = "InTypeAlias";
NodeBuilderFlags[NodeBuilderFlags["InInitialEntityName"] = 16777216] = "InInitialEntityName";
})(NodeBuilderFlags || (NodeBuilderFlags = {}));
Comment on lines +2 to +37
Copy link

Copilot AI Apr 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NodeBuilderFlags is generated as any here, which removes type safety precisely where the API surface uses it as a parameter type (e.g., signatureToSignatureDeclaration(..., flags?: NodeBuilderFlags)). Consider importing/using the generated typed enum (nodeBuilderFlags.enum.ts) in the API layer, or adjusting generation so #enums/nodeBuilderFlags resolves to the typed enum while still providing a runtime value export.

Suggested change
export var NodeBuilderFlags: any;
(function (NodeBuilderFlags) {
NodeBuilderFlags[NodeBuilderFlags["None"] = 0] = "None";
NodeBuilderFlags[NodeBuilderFlags["NoTruncation"] = 1] = "NoTruncation";
NodeBuilderFlags[NodeBuilderFlags["WriteArrayAsGenericType"] = 2] = "WriteArrayAsGenericType";
NodeBuilderFlags[NodeBuilderFlags["GenerateNamesForShadowedTypeParams"] = 4] = "GenerateNamesForShadowedTypeParams";
NodeBuilderFlags[NodeBuilderFlags["UseStructuralFallback"] = 8] = "UseStructuralFallback";
NodeBuilderFlags[NodeBuilderFlags["ForbidIndexedAccessSymbolReferences"] = 16] = "ForbidIndexedAccessSymbolReferences";
NodeBuilderFlags[NodeBuilderFlags["WriteTypeArgumentsOfSignature"] = 32] = "WriteTypeArgumentsOfSignature";
NodeBuilderFlags[NodeBuilderFlags["UseFullyQualifiedType"] = 64] = "UseFullyQualifiedType";
NodeBuilderFlags[NodeBuilderFlags["UseOnlyExternalAliasing"] = 128] = "UseOnlyExternalAliasing";
NodeBuilderFlags[NodeBuilderFlags["SuppressAnyReturnType"] = 256] = "SuppressAnyReturnType";
NodeBuilderFlags[NodeBuilderFlags["WriteTypeParametersInQualifiedName"] = 512] = "WriteTypeParametersInQualifiedName";
NodeBuilderFlags[NodeBuilderFlags["MultilineObjectLiterals"] = 1024] = "MultilineObjectLiterals";
NodeBuilderFlags[NodeBuilderFlags["WriteClassExpressionAsTypeLiteral"] = 2048] = "WriteClassExpressionAsTypeLiteral";
NodeBuilderFlags[NodeBuilderFlags["UseTypeOfFunction"] = 4096] = "UseTypeOfFunction";
NodeBuilderFlags[NodeBuilderFlags["OmitParameterModifiers"] = 8192] = "OmitParameterModifiers";
NodeBuilderFlags[NodeBuilderFlags["UseAliasDefinedOutsideCurrentScope"] = 16384] = "UseAliasDefinedOutsideCurrentScope";
NodeBuilderFlags[NodeBuilderFlags["UseSingleQuotesForStringLiteralType"] = 268435456] = "UseSingleQuotesForStringLiteralType";
NodeBuilderFlags[NodeBuilderFlags["NoTypeReduction"] = 536870912] = "NoTypeReduction";
NodeBuilderFlags[NodeBuilderFlags["UseInstantiationExpressions"] = 1073741824] = "UseInstantiationExpressions";
NodeBuilderFlags[NodeBuilderFlags["OmitThisParameter"] = 33554432] = "OmitThisParameter";
NodeBuilderFlags[NodeBuilderFlags["WriteCallStyleSignature"] = 134217728] = "WriteCallStyleSignature";
NodeBuilderFlags[NodeBuilderFlags["AllowThisInObjectLiteral"] = 32768] = "AllowThisInObjectLiteral";
NodeBuilderFlags[NodeBuilderFlags["AllowQualifiedNameInPlaceOfIdentifier"] = 65536] = "AllowQualifiedNameInPlaceOfIdentifier";
NodeBuilderFlags[NodeBuilderFlags["AllowAnonymousIdentifier"] = 131072] = "AllowAnonymousIdentifier";
NodeBuilderFlags[NodeBuilderFlags["AllowEmptyUnionOrIntersection"] = 262144] = "AllowEmptyUnionOrIntersection";
NodeBuilderFlags[NodeBuilderFlags["AllowEmptyTuple"] = 524288] = "AllowEmptyTuple";
NodeBuilderFlags[NodeBuilderFlags["AllowUniqueESSymbolType"] = 1048576] = "AllowUniqueESSymbolType";
NodeBuilderFlags[NodeBuilderFlags["AllowEmptyIndexInfoType"] = 2097152] = "AllowEmptyIndexInfoType";
NodeBuilderFlags[NodeBuilderFlags["AllowNodeModulesRelativePaths"] = 67108864] = "AllowNodeModulesRelativePaths";
NodeBuilderFlags[NodeBuilderFlags["IgnoreErrors"] = 70221824] = "IgnoreErrors";
NodeBuilderFlags[NodeBuilderFlags["InObjectTypeLiteral"] = 4194304] = "InObjectTypeLiteral";
NodeBuilderFlags[NodeBuilderFlags["InTypeAlias"] = 8388608] = "InTypeAlias";
NodeBuilderFlags[NodeBuilderFlags["InInitialEntityName"] = 16777216] = "InInitialEntityName";
})(NodeBuilderFlags || (NodeBuilderFlags = {}));
export enum NodeBuilderFlags {
None = 0,
NoTruncation = 1,
WriteArrayAsGenericType = 2,
GenerateNamesForShadowedTypeParams = 4,
UseStructuralFallback = 8,
ForbidIndexedAccessSymbolReferences = 16,
WriteTypeArgumentsOfSignature = 32,
UseFullyQualifiedType = 64,
UseOnlyExternalAliasing = 128,
SuppressAnyReturnType = 256,
WriteTypeParametersInQualifiedName = 512,
MultilineObjectLiterals = 1024,
WriteClassExpressionAsTypeLiteral = 2048,
UseTypeOfFunction = 4096,
OmitParameterModifiers = 8192,
UseAliasDefinedOutsideCurrentScope = 16384,
UseSingleQuotesForStringLiteralType = 268435456,
NoTypeReduction = 536870912,
UseInstantiationExpressions = 1073741824,
OmitThisParameter = 33554432,
WriteCallStyleSignature = 134217728,
AllowThisInObjectLiteral = 32768,
AllowQualifiedNameInPlaceOfIdentifier = 65536,
AllowAnonymousIdentifier = 131072,
AllowEmptyUnionOrIntersection = 262144,
AllowEmptyTuple = 524288,
AllowUniqueESSymbolType = 1048576,
AllowEmptyIndexInfoType = 2097152,
AllowNodeModulesRelativePaths = 67108864,
IgnoreErrors = 70221824,
InObjectTypeLiteral = 4194304,
InTypeAlias = 8388608,
InInitialEntityName = 16777216,
}

Copilot uses AI. Check for mistakes.
Loading
Loading