TypeScript/lib/tsserverlibrary.d.ts

11645 lines
487 KiB
TypeScript

/// <reference path="../../src/server/types.d.ts" />
declare namespace ts.server.protocol {
namespace CommandTypes {
type Brace = "brace";
type BraceFull = "brace-full";
type BraceCompletion = "braceCompletion";
type Change = "change";
type Close = "close";
type Completions = "completions";
type CompletionsFull = "completions-full";
type CompletionDetails = "completionEntryDetails";
type CompileOnSaveAffectedFileList = "compileOnSaveAffectedFileList";
type CompileOnSaveEmitFile = "compileOnSaveEmitFile";
type Configure = "configure";
type Definition = "definition";
type DefinitionFull = "definition-full";
type Implementation = "implementation";
type ImplementationFull = "implementation-full";
type Exit = "exit";
type Format = "format";
type Formatonkey = "formatonkey";
type FormatFull = "format-full";
type FormatonkeyFull = "formatonkey-full";
type FormatRangeFull = "formatRange-full";
type Geterr = "geterr";
type GeterrForProject = "geterrForProject";
type SemanticDiagnosticsSync = "semanticDiagnosticsSync";
type SyntacticDiagnosticsSync = "syntacticDiagnosticsSync";
type NavBar = "navbar";
type NavBarFull = "navbar-full";
type Navto = "navto";
type NavtoFull = "navto-full";
type NavTree = "navtree";
type NavTreeFull = "navtree-full";
type Occurrences = "occurrences";
type DocumentHighlights = "documentHighlights";
type DocumentHighlightsFull = "documentHighlights-full";
type Open = "open";
type Quickinfo = "quickinfo";
type QuickinfoFull = "quickinfo-full";
type References = "references";
type ReferencesFull = "references-full";
type Reload = "reload";
type Rename = "rename";
type RenameInfoFull = "rename-full";
type RenameLocationsFull = "renameLocations-full";
type Saveto = "saveto";
type SignatureHelp = "signatureHelp";
type SignatureHelpFull = "signatureHelp-full";
type TypeDefinition = "typeDefinition";
type ProjectInfo = "projectInfo";
type ReloadProjects = "reloadProjects";
type Unknown = "unknown";
type OpenExternalProject = "openExternalProject";
type OpenExternalProjects = "openExternalProjects";
type CloseExternalProject = "closeExternalProject";
type SynchronizeProjectList = "synchronizeProjectList";
type ApplyChangedToOpenFiles = "applyChangedToOpenFiles";
type EncodedSemanticClassificationsFull = "encodedSemanticClassifications-full";
type Cleanup = "cleanup";
type OutliningSpans = "outliningSpans";
type TodoComments = "todoComments";
type Indentation = "indentation";
type DocCommentTemplate = "docCommentTemplate";
type CompilerOptionsDiagnosticsFull = "compilerOptionsDiagnostics-full";
type NameOrDottedNameSpan = "nameOrDottedNameSpan";
type BreakpointStatement = "breakpointStatement";
type CompilerOptionsForInferredProjects = "compilerOptionsForInferredProjects";
type GetCodeFixes = "getCodeFixes";
type GetCodeFixesFull = "getCodeFixes-full";
type GetSupportedCodeFixes = "getSupportedCodeFixes";
}
interface Message {
seq: number;
type: "request" | "response" | "event";
}
interface Request extends Message {
command: string;
arguments?: any;
}
interface ReloadProjectsRequest extends Message {
command: CommandTypes.ReloadProjects;
}
interface Event extends Message {
event: string;
body?: any;
}
interface Response extends Message {
request_seq: number;
success: boolean;
command: string;
message?: string;
body?: any;
}
interface FileRequestArgs {
file: string;
projectFileName?: string;
}
interface DocCommentTemplateRequest extends FileLocationRequest {
command: CommandTypes.DocCommentTemplate;
}
interface DocCommandTemplateResponse extends Response {
body?: TextInsertion;
}
interface TodoCommentRequest extends FileRequest {
command: CommandTypes.TodoComments;
arguments: TodoCommentRequestArgs;
}
interface TodoCommentRequestArgs extends FileRequestArgs {
descriptors: TodoCommentDescriptor[];
}
interface TodoCommentsResponse extends Response {
body?: TodoComment[];
}
interface OutliningSpansRequest extends FileRequest {
command: CommandTypes.OutliningSpans;
}
interface OutliningSpansResponse extends Response {
body?: OutliningSpan[];
}
interface IndentationRequest extends FileLocationRequest {
command: CommandTypes.Indentation;
arguments: IndentationRequestArgs;
}
interface IndentationResponse extends Response {
body?: IndentationResult;
}
interface IndentationResult {
position: number;
indentation: number;
}
interface IndentationRequestArgs extends FileLocationRequestArgs {
options?: EditorSettings;
}
interface ProjectInfoRequestArgs extends FileRequestArgs {
needFileNameList: boolean;
}
interface ProjectInfoRequest extends Request {
command: CommandTypes.ProjectInfo;
arguments: ProjectInfoRequestArgs;
}
interface CompilerOptionsDiagnosticsRequest extends Request {
arguments: CompilerOptionsDiagnosticsRequestArgs;
}
interface CompilerOptionsDiagnosticsRequestArgs {
projectFileName: string;
}
interface ProjectInfo {
configFileName: string;
fileNames?: string[];
languageServiceDisabled?: boolean;
}
interface DiagnosticWithLinePosition {
message: string;
start: number;
length: number;
startLocation: Location;
endLocation: Location;
category: string;
code: number;
}
interface ProjectInfoResponse extends Response {
body?: ProjectInfo;
}
interface FileRequest extends Request {
arguments: FileRequestArgs;
}
interface FileLocationRequestArgs extends FileRequestArgs {
line: number;
offset: number;
position?: number;
}
interface CodeFixRequest extends Request {
command: CommandTypes.GetCodeFixes;
arguments: CodeFixRequestArgs;
}
interface CodeFixRequestArgs extends FileRequestArgs {
startLine: number;
startOffset: number;
startPosition?: number;
endLine: number;
endOffset: number;
endPosition?: number;
errorCodes?: number[];
}
interface GetCodeFixesResponse extends Response {
body?: CodeAction[];
}
interface FileLocationRequest extends FileRequest {
arguments: FileLocationRequestArgs;
}
interface GetSupportedCodeFixesRequest extends Request {
command: CommandTypes.GetSupportedCodeFixes;
}
interface GetSupportedCodeFixesResponse extends Response {
body?: string[];
}
interface EncodedSemanticClassificationsRequest extends FileRequest {
arguments: EncodedSemanticClassificationsRequestArgs;
}
interface EncodedSemanticClassificationsRequestArgs extends FileRequestArgs {
start: number;
length: number;
}
interface DocumentHighlightsRequestArgs extends FileLocationRequestArgs {
filesToSearch: string[];
}
interface DefinitionRequest extends FileLocationRequest {
command: CommandTypes.Definition;
}
interface TypeDefinitionRequest extends FileLocationRequest {
command: CommandTypes.TypeDefinition;
}
interface ImplementationRequest extends FileLocationRequest {
command: CommandTypes.Implementation;
}
interface Location {
line: number;
offset: number;
}
interface TextSpan {
start: Location;
end: Location;
}
interface FileSpan extends TextSpan {
file: string;
}
interface DefinitionResponse extends Response {
body?: FileSpan[];
}
interface TypeDefinitionResponse extends Response {
body?: FileSpan[];
}
interface ImplementationResponse extends Response {
body?: FileSpan[];
}
interface BraceCompletionRequest extends FileLocationRequest {
command: CommandTypes.BraceCompletion;
arguments: BraceCompletionRequestArgs;
}
interface BraceCompletionRequestArgs extends FileLocationRequestArgs {
openingBrace: string;
}
interface OccurrencesRequest extends FileLocationRequest {
command: CommandTypes.Occurrences;
}
interface OccurrencesResponseItem extends FileSpan {
isWriteAccess: boolean;
}
interface OccurrencesResponse extends Response {
body?: OccurrencesResponseItem[];
}
interface DocumentHighlightsRequest extends FileLocationRequest {
command: CommandTypes.DocumentHighlights;
arguments: DocumentHighlightsRequestArgs;
}
interface HighlightSpan extends TextSpan {
kind: string;
}
interface DocumentHighlightsItem {
file: string;
highlightSpans: HighlightSpan[];
}
interface DocumentHighlightsResponse extends Response {
body?: DocumentHighlightsItem[];
}
interface ReferencesRequest extends FileLocationRequest {
command: CommandTypes.References;
}
interface ReferencesResponseItem extends FileSpan {
lineText: string;
isWriteAccess: boolean;
isDefinition: boolean;
}
interface ReferencesResponseBody {
refs: ReferencesResponseItem[];
symbolName: string;
symbolStartOffset: number;
symbolDisplayString: string;
}
interface ReferencesResponse extends Response {
body?: ReferencesResponseBody;
}
interface RenameRequestArgs extends FileLocationRequestArgs {
findInComments?: boolean;
findInStrings?: boolean;
}
interface RenameRequest extends FileLocationRequest {
command: CommandTypes.Rename;
arguments: RenameRequestArgs;
}
interface RenameInfo {
canRename: boolean;
localizedErrorMessage?: string;
displayName: string;
fullDisplayName: string;
kind: string;
kindModifiers: string;
}
interface SpanGroup {
file: string;
locs: TextSpan[];
}
interface RenameResponseBody {
info: RenameInfo;
locs: SpanGroup[];
}
interface RenameResponse extends Response {
body?: RenameResponseBody;
}
interface ExternalFile {
fileName: string;
scriptKind?: ScriptKindName | ts.ScriptKind;
hasMixedContent?: boolean;
content?: string;
}
interface ExternalProject {
projectFileName: string;
rootFiles: ExternalFile[];
options: ExternalProjectCompilerOptions;
typingOptions?: TypingOptions;
}
interface CompileOnSaveMixin {
compileOnSave?: boolean;
}
type ExternalProjectCompilerOptions = CompilerOptions & CompileOnSaveMixin;
interface ProjectVersionInfo {
projectName: string;
isInferred: boolean;
version: number;
options: ts.CompilerOptions;
}
interface ProjectChanges {
added: string[];
removed: string[];
}
interface ProjectFiles {
info?: ProjectVersionInfo;
files?: string[];
changes?: ProjectChanges;
}
interface ProjectFilesWithDiagnostics extends ProjectFiles {
projectErrors: DiagnosticWithLinePosition[];
}
interface ChangedOpenFile {
fileName: string;
changes: ts.TextChange[];
}
interface ConfigureRequestArguments {
hostInfo?: string;
file?: string;
formatOptions?: FormatCodeSettings;
}
interface ConfigureRequest extends Request {
command: CommandTypes.Configure;
arguments: ConfigureRequestArguments;
}
interface ConfigureResponse extends Response {
}
interface OpenRequestArgs extends FileRequestArgs {
fileContent?: string;
scriptKindName?: ScriptKindName;
}
type ScriptKindName = "TS" | "JS" | "TSX" | "JSX";
interface OpenRequest extends Request {
command: CommandTypes.Open;
arguments: OpenRequestArgs;
}
interface OpenExternalProjectRequest extends Request {
command: CommandTypes.OpenExternalProject;
arguments: OpenExternalProjectArgs;
}
type OpenExternalProjectArgs = ExternalProject;
interface OpenExternalProjectsRequest extends Request {
command: CommandTypes.OpenExternalProjects;
arguments: OpenExternalProjectsArgs;
}
interface OpenExternalProjectsArgs {
projects: ExternalProject[];
}
interface OpenExternalProjectResponse extends Response {
}
interface OpenExternalProjectsResponse extends Response {
}
interface CloseExternalProjectRequest extends Request {
command: CommandTypes.CloseExternalProject;
arguments: CloseExternalProjectRequestArgs;
}
interface CloseExternalProjectRequestArgs {
projectFileName: string;
}
interface CloseExternalProjectResponse extends Response {
}
interface SynchronizeProjectListRequest extends Request {
arguments: SynchronizeProjectListRequestArgs;
}
interface SynchronizeProjectListRequestArgs {
knownProjects: protocol.ProjectVersionInfo[];
}
interface ApplyChangedToOpenFilesRequest extends Request {
arguments: ApplyChangedToOpenFilesRequestArgs;
}
interface ApplyChangedToOpenFilesRequestArgs {
openFiles?: ExternalFile[];
changedFiles?: ChangedOpenFile[];
closedFiles?: string[];
}
interface SetCompilerOptionsForInferredProjectsRequest extends Request {
command: CommandTypes.CompilerOptionsForInferredProjects;
arguments: SetCompilerOptionsForInferredProjectsArgs;
}
interface SetCompilerOptionsForInferredProjectsArgs {
options: ExternalProjectCompilerOptions;
}
interface SetCompilerOptionsForInferredProjectsResponse extends Response {
}
interface ExitRequest extends Request {
command: CommandTypes.Exit;
}
interface CloseRequest extends FileRequest {
command: CommandTypes.Close;
}
interface CompileOnSaveAffectedFileListRequest extends FileRequest {
command: CommandTypes.CompileOnSaveAffectedFileList;
}
interface CompileOnSaveAffectedFileListSingleProject {
projectFileName: string;
fileNames: string[];
}
interface CompileOnSaveAffectedFileListResponse extends Response {
body: CompileOnSaveAffectedFileListSingleProject[];
}
interface CompileOnSaveEmitFileRequest extends FileRequest {
command: CommandTypes.CompileOnSaveEmitFile;
arguments: CompileOnSaveEmitFileRequestArgs;
}
interface CompileOnSaveEmitFileRequestArgs extends FileRequestArgs {
forced?: boolean;
}
interface QuickInfoRequest extends FileLocationRequest {
command: CommandTypes.Quickinfo;
}
interface QuickInfoResponseBody {
kind: string;
kindModifiers: string;
start: Location;
end: Location;
displayString: string;
documentation: string;
}
interface QuickInfoResponse extends Response {
body?: QuickInfoResponseBody;
}
interface FormatRequestArgs extends FileLocationRequestArgs {
endLine: number;
endOffset: number;
endPosition?: number;
options?: FormatCodeSettings;
}
interface FormatRequest extends FileLocationRequest {
command: CommandTypes.Format;
arguments: FormatRequestArgs;
}
interface CodeEdit {
start: Location;
end: Location;
newText: string;
}
interface FileCodeEdits {
fileName: string;
textChanges: CodeEdit[];
}
interface CodeFixResponse extends Response {
body?: CodeAction[];
}
interface CodeAction {
description: string;
changes: FileCodeEdits[];
}
interface FormatResponse extends Response {
body?: CodeEdit[];
}
interface FormatOnKeyRequestArgs extends FileLocationRequestArgs {
key: string;
options?: FormatCodeSettings;
}
interface FormatOnKeyRequest extends FileLocationRequest {
command: CommandTypes.Formatonkey;
arguments: FormatOnKeyRequestArgs;
}
interface CompletionsRequestArgs extends FileLocationRequestArgs {
prefix?: string;
}
interface CompletionsRequest extends FileLocationRequest {
command: CommandTypes.Completions;
arguments: CompletionsRequestArgs;
}
interface CompletionDetailsRequestArgs extends FileLocationRequestArgs {
entryNames: string[];
}
interface CompletionDetailsRequest extends FileLocationRequest {
command: CommandTypes.CompletionDetails;
arguments: CompletionDetailsRequestArgs;
}
interface SymbolDisplayPart {
text: string;
kind: string;
}
interface CompletionEntry {
name: string;
kind: string;
kindModifiers: string;
sortText: string;
replacementSpan?: TextSpan;
}
interface CompletionEntryDetails {
name: string;
kind: string;
kindModifiers: string;
displayParts: SymbolDisplayPart[];
documentation: SymbolDisplayPart[];
}
interface CompletionsResponse extends Response {
body?: CompletionEntry[];
}
interface CompletionDetailsResponse extends Response {
body?: CompletionEntryDetails[];
}
interface SignatureHelpParameter {
name: string;
documentation: SymbolDisplayPart[];
displayParts: SymbolDisplayPart[];
isOptional: boolean;
}
interface SignatureHelpItem {
isVariadic: boolean;
prefixDisplayParts: SymbolDisplayPart[];
suffixDisplayParts: SymbolDisplayPart[];
separatorDisplayParts: SymbolDisplayPart[];
parameters: SignatureHelpParameter[];
documentation: SymbolDisplayPart[];
}
interface SignatureHelpItems {
items: SignatureHelpItem[];
applicableSpan: TextSpan;
selectedItemIndex: number;
argumentIndex: number;
argumentCount: number;
}
interface SignatureHelpRequestArgs extends FileLocationRequestArgs {
}
interface SignatureHelpRequest extends FileLocationRequest {
command: CommandTypes.SignatureHelp;
arguments: SignatureHelpRequestArgs;
}
interface SignatureHelpResponse extends Response {
body?: SignatureHelpItems;
}
interface SemanticDiagnosticsSyncRequest extends FileRequest {
command: CommandTypes.SemanticDiagnosticsSync;
arguments: SemanticDiagnosticsSyncRequestArgs;
}
interface SemanticDiagnosticsSyncRequestArgs extends FileRequestArgs {
includeLinePosition?: boolean;
}
interface SemanticDiagnosticsSyncResponse extends Response {
body?: Diagnostic[] | DiagnosticWithLinePosition[];
}
interface SyntacticDiagnosticsSyncRequest extends FileRequest {
command: CommandTypes.SyntacticDiagnosticsSync;
arguments: SyntacticDiagnosticsSyncRequestArgs;
}
interface SyntacticDiagnosticsSyncRequestArgs extends FileRequestArgs {
includeLinePosition?: boolean;
}
interface SyntacticDiagnosticsSyncResponse extends Response {
body?: Diagnostic[] | DiagnosticWithLinePosition[];
}
interface GeterrForProjectRequestArgs {
file: string;
delay: number;
}
interface GeterrForProjectRequest extends Request {
command: CommandTypes.GeterrForProject;
arguments: GeterrForProjectRequestArgs;
}
interface GeterrRequestArgs {
files: string[];
delay: number;
}
interface GeterrRequest extends Request {
command: CommandTypes.Geterr;
arguments: GeterrRequestArgs;
}
interface Diagnostic {
start: Location;
end: Location;
text: string;
code?: number;
}
interface DiagnosticEventBody {
file: string;
diagnostics: Diagnostic[];
}
interface DiagnosticEvent extends Event {
body?: DiagnosticEventBody;
}
interface ConfigFileDiagnosticEventBody {
triggerFile: string;
configFile: string;
diagnostics: Diagnostic[];
}
interface ConfigFileDiagnosticEvent extends Event {
body?: ConfigFileDiagnosticEventBody;
event: "configFileDiag";
}
interface ReloadRequestArgs extends FileRequestArgs {
tmpfile: string;
}
interface ReloadRequest extends FileRequest {
command: CommandTypes.Reload;
arguments: ReloadRequestArgs;
}
interface ReloadResponse extends Response {
}
interface SavetoRequestArgs extends FileRequestArgs {
tmpfile: string;
}
interface SavetoRequest extends FileRequest {
command: CommandTypes.Saveto;
arguments: SavetoRequestArgs;
}
interface NavtoRequestArgs extends FileRequestArgs {
searchValue: string;
maxResultCount?: number;
currentFileOnly?: boolean;
projectFileName?: string;
}
interface NavtoRequest extends FileRequest {
command: CommandTypes.Navto;
arguments: NavtoRequestArgs;
}
interface NavtoItem {
name: string;
kind: string;
matchKind?: string;
isCaseSensitive?: boolean;
kindModifiers?: string;
file: string;
start: Location;
end: Location;
containerName?: string;
containerKind?: string;
}
interface NavtoResponse extends Response {
body?: NavtoItem[];
}
interface ChangeRequestArgs extends FormatRequestArgs {
insertString?: string;
}
interface ChangeRequest extends FileLocationRequest {
command: CommandTypes.Change;
arguments: ChangeRequestArgs;
}
interface BraceResponse extends Response {
body?: TextSpan[];
}
interface BraceRequest extends FileLocationRequest {
command: CommandTypes.Brace;
}
interface NavBarRequest extends FileRequest {
command: CommandTypes.NavBar;
}
interface NavTreeRequest extends FileRequest {
command: CommandTypes.NavTree;
}
interface NavigationBarItem {
text: string;
kind: string;
kindModifiers?: string;
spans: TextSpan[];
childItems?: NavigationBarItem[];
indent: number;
}
interface NavigationTree {
text: string;
kind: string;
kindModifiers: string;
spans: TextSpan[];
childItems?: NavigationTree[];
}
type TelemetryEventName = "telemetry";
interface TelemetryEvent extends Event {
event: TelemetryEventName;
body: TelemetryEventBody;
}
interface TelemetryEventBody {
telemetryEventName: string;
payload: any;
}
type TypingsInstalledTelemetryEventName = "typingsInstalled";
interface TypingsInstalledTelemetryEventBody extends TelemetryEventBody {
telemetryEventName: TypingsInstalledTelemetryEventName;
payload: TypingsInstalledTelemetryEventPayload;
}
interface TypingsInstalledTelemetryEventPayload {
installedPackages: string;
installSuccess: boolean;
}
interface NavBarResponse extends Response {
body?: NavigationBarItem[];
}
interface NavTreeResponse extends Response {
body?: NavigationTree;
}
namespace IndentStyle {
type None = "None";
type Block = "Block";
type Smart = "Smart";
}
type IndentStyle = IndentStyle.None | IndentStyle.Block | IndentStyle.Smart;
interface EditorSettings {
baseIndentSize?: number;
indentSize?: number;
tabSize?: number;
newLineCharacter?: string;
convertTabsToSpaces?: boolean;
indentStyle?: IndentStyle | ts.IndentStyle;
}
interface FormatCodeSettings extends EditorSettings {
insertSpaceAfterCommaDelimiter?: boolean;
insertSpaceAfterSemicolonInForStatements?: boolean;
insertSpaceBeforeAndAfterBinaryOperators?: boolean;
insertSpaceAfterKeywordsInControlFlowStatements?: boolean;
insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean;
insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean;
insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean;
insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean;
insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean;
placeOpenBraceOnNewLineForFunctions?: boolean;
placeOpenBraceOnNewLineForControlBlocks?: boolean;
}
interface CompilerOptions {
allowJs?: boolean;
allowSyntheticDefaultImports?: boolean;
allowUnreachableCode?: boolean;
allowUnusedLabels?: boolean;
baseUrl?: string;
charset?: string;
declaration?: boolean;
declarationDir?: string;
disableSizeLimit?: boolean;
emitBOM?: boolean;
emitDecoratorMetadata?: boolean;
experimentalDecorators?: boolean;
forceConsistentCasingInFileNames?: boolean;
inlineSourceMap?: boolean;
inlineSources?: boolean;
isolatedModules?: boolean;
jsx?: JsxEmit | ts.JsxEmit;
lib?: string[];
locale?: string;
mapRoot?: string;
maxNodeModuleJsDepth?: number;
module?: ModuleKind | ts.ModuleKind;
moduleResolution?: ModuleResolutionKind | ts.ModuleResolutionKind;
newLine?: NewLineKind | ts.NewLineKind;
noEmit?: boolean;
noEmitHelpers?: boolean;
noEmitOnError?: boolean;
noErrorTruncation?: boolean;
noFallthroughCasesInSwitch?: boolean;
noImplicitAny?: boolean;
noImplicitReturns?: boolean;
noImplicitThis?: boolean;
noUnusedLocals?: boolean;
noUnusedParameters?: boolean;
noImplicitUseStrict?: boolean;
noLib?: boolean;
noResolve?: boolean;
out?: string;
outDir?: string;
outFile?: string;
paths?: MapLike<string[]>;
preserveConstEnums?: boolean;
project?: string;
reactNamespace?: string;
removeComments?: boolean;
rootDir?: string;
rootDirs?: string[];
skipLibCheck?: boolean;
skipDefaultLibCheck?: boolean;
sourceMap?: boolean;
sourceRoot?: string;
strictNullChecks?: boolean;
suppressExcessPropertyErrors?: boolean;
suppressImplicitAnyIndexErrors?: boolean;
target?: ScriptTarget | ts.ScriptTarget;
traceResolution?: boolean;
types?: string[];
typeRoots?: string[];
[option: string]: CompilerOptionsValue | undefined;
}
namespace JsxEmit {
type None = "None";
type Preserve = "Preserve";
type React = "React";
}
type JsxEmit = JsxEmit.None | JsxEmit.Preserve | JsxEmit.React;
namespace ModuleKind {
type None = "None";
type CommonJS = "CommonJS";
type AMD = "AMD";
type UMD = "UMD";
type System = "System";
type ES6 = "ES6";
type ES2015 = "ES2015";
}
type ModuleKind = ModuleKind.None | ModuleKind.CommonJS | ModuleKind.AMD | ModuleKind.UMD | ModuleKind.System | ModuleKind.ES6 | ModuleKind.ES2015;
namespace ModuleResolutionKind {
type Classic = "Classic";
type Node = "Node";
}
type ModuleResolutionKind = ModuleResolutionKind.Classic | ModuleResolutionKind.Node;
namespace NewLineKind {
type Crlf = "Crlf";
type Lf = "Lf";
}
type NewLineKind = NewLineKind.Crlf | NewLineKind.Lf;
namespace ScriptTarget {
type ES3 = "ES3";
type ES5 = "ES5";
type ES6 = "ES6";
type ES2015 = "ES2015";
}
type ScriptTarget = ScriptTarget.ES3 | ScriptTarget.ES5 | ScriptTarget.ES6 | ScriptTarget.ES2015;
}
declare namespace ts {
interface MapLike<T> {
[index: string]: T;
}
interface Map<T> extends MapLike<T> {
__mapBrand: any;
}
type Path = string & {
__pathBrand: any;
};
interface FileMap<T> {
get(fileName: Path): T;
set(fileName: Path, value: T): void;
contains(fileName: Path): boolean;
remove(fileName: Path): void;
forEachValue(f: (key: Path, v: T) => void): void;
getKeys(): Path[];
clear(): void;
}
interface TextRange {
pos: number;
end: number;
}
const enum SyntaxKind {
Unknown = 0,
EndOfFileToken = 1,
SingleLineCommentTrivia = 2,
MultiLineCommentTrivia = 3,
NewLineTrivia = 4,
WhitespaceTrivia = 5,
ShebangTrivia = 6,
ConflictMarkerTrivia = 7,
NumericLiteral = 8,
StringLiteral = 9,
JsxText = 10,
RegularExpressionLiteral = 11,
NoSubstitutionTemplateLiteral = 12,
TemplateHead = 13,
TemplateMiddle = 14,
TemplateTail = 15,
OpenBraceToken = 16,
CloseBraceToken = 17,
OpenParenToken = 18,
CloseParenToken = 19,
OpenBracketToken = 20,
CloseBracketToken = 21,
DotToken = 22,
DotDotDotToken = 23,
SemicolonToken = 24,
CommaToken = 25,
LessThanToken = 26,
LessThanSlashToken = 27,
GreaterThanToken = 28,
LessThanEqualsToken = 29,
GreaterThanEqualsToken = 30,
EqualsEqualsToken = 31,
ExclamationEqualsToken = 32,
EqualsEqualsEqualsToken = 33,
ExclamationEqualsEqualsToken = 34,
EqualsGreaterThanToken = 35,
PlusToken = 36,
MinusToken = 37,
AsteriskToken = 38,
AsteriskAsteriskToken = 39,
SlashToken = 40,
PercentToken = 41,
PlusPlusToken = 42,
MinusMinusToken = 43,
LessThanLessThanToken = 44,
GreaterThanGreaterThanToken = 45,
GreaterThanGreaterThanGreaterThanToken = 46,
AmpersandToken = 47,
BarToken = 48,
CaretToken = 49,
ExclamationToken = 50,
TildeToken = 51,
AmpersandAmpersandToken = 52,
BarBarToken = 53,
QuestionToken = 54,
ColonToken = 55,
AtToken = 56,
EqualsToken = 57,
PlusEqualsToken = 58,
MinusEqualsToken = 59,
AsteriskEqualsToken = 60,
AsteriskAsteriskEqualsToken = 61,
SlashEqualsToken = 62,
PercentEqualsToken = 63,
LessThanLessThanEqualsToken = 64,
GreaterThanGreaterThanEqualsToken = 65,
GreaterThanGreaterThanGreaterThanEqualsToken = 66,
AmpersandEqualsToken = 67,
BarEqualsToken = 68,
CaretEqualsToken = 69,
Identifier = 70,
BreakKeyword = 71,
CaseKeyword = 72,
CatchKeyword = 73,
ClassKeyword = 74,
ConstKeyword = 75,
ContinueKeyword = 76,
DebuggerKeyword = 77,
DefaultKeyword = 78,
DeleteKeyword = 79,
DoKeyword = 80,
ElseKeyword = 81,
EnumKeyword = 82,
ExportKeyword = 83,
ExtendsKeyword = 84,
FalseKeyword = 85,
FinallyKeyword = 86,
ForKeyword = 87,
FunctionKeyword = 88,
IfKeyword = 89,
ImportKeyword = 90,
InKeyword = 91,
InstanceOfKeyword = 92,
NewKeyword = 93,
NullKeyword = 94,
ReturnKeyword = 95,
SuperKeyword = 96,
SwitchKeyword = 97,
ThisKeyword = 98,
ThrowKeyword = 99,
TrueKeyword = 100,
TryKeyword = 101,
TypeOfKeyword = 102,
VarKeyword = 103,
VoidKeyword = 104,
WhileKeyword = 105,
WithKeyword = 106,
ImplementsKeyword = 107,
InterfaceKeyword = 108,
LetKeyword = 109,
PackageKeyword = 110,
PrivateKeyword = 111,
ProtectedKeyword = 112,
PublicKeyword = 113,
StaticKeyword = 114,
YieldKeyword = 115,
AbstractKeyword = 116,
AsKeyword = 117,
AnyKeyword = 118,
AsyncKeyword = 119,
AwaitKeyword = 120,
BooleanKeyword = 121,
ConstructorKeyword = 122,
DeclareKeyword = 123,
GetKeyword = 124,
IsKeyword = 125,
KeyOfKeyword = 126,
ModuleKeyword = 127,
NamespaceKeyword = 128,
NeverKeyword = 129,
ReadonlyKeyword = 130,
RequireKeyword = 131,
NumberKeyword = 132,
SetKeyword = 133,
StringKeyword = 134,
SymbolKeyword = 135,
TypeKeyword = 136,
UndefinedKeyword = 137,
FromKeyword = 138,
GlobalKeyword = 139,
OfKeyword = 140,
QualifiedName = 141,
ComputedPropertyName = 142,
TypeParameter = 143,
Parameter = 144,
Decorator = 145,
PropertySignature = 146,
PropertyDeclaration = 147,
MethodSignature = 148,
MethodDeclaration = 149,
Constructor = 150,
GetAccessor = 151,
SetAccessor = 152,
CallSignature = 153,
ConstructSignature = 154,
IndexSignature = 155,
TypePredicate = 156,
TypeReference = 157,
FunctionType = 158,
ConstructorType = 159,
TypeQuery = 160,
TypeLiteral = 161,
ArrayType = 162,
TupleType = 163,
UnionType = 164,
IntersectionType = 165,
ParenthesizedType = 166,
ThisType = 167,
TypeOperator = 168,
IndexedAccessType = 169,
MappedType = 170,
LiteralType = 171,
ObjectBindingPattern = 172,
ArrayBindingPattern = 173,
BindingElement = 174,
ArrayLiteralExpression = 175,
ObjectLiteralExpression = 176,
PropertyAccessExpression = 177,
ElementAccessExpression = 178,
CallExpression = 179,
NewExpression = 180,
TaggedTemplateExpression = 181,
TypeAssertionExpression = 182,
ParenthesizedExpression = 183,
FunctionExpression = 184,
ArrowFunction = 185,
DeleteExpression = 186,
TypeOfExpression = 187,
VoidExpression = 188,
AwaitExpression = 189,
PrefixUnaryExpression = 190,
PostfixUnaryExpression = 191,
BinaryExpression = 192,
ConditionalExpression = 193,
TemplateExpression = 194,
YieldExpression = 195,
SpreadElement = 196,
ClassExpression = 197,
OmittedExpression = 198,
ExpressionWithTypeArguments = 199,
AsExpression = 200,
NonNullExpression = 201,
TemplateSpan = 202,
SemicolonClassElement = 203,
Block = 204,
VariableStatement = 205,
EmptyStatement = 206,
ExpressionStatement = 207,
IfStatement = 208,
DoStatement = 209,
WhileStatement = 210,
ForStatement = 211,
ForInStatement = 212,
ForOfStatement = 213,
ContinueStatement = 214,
BreakStatement = 215,
ReturnStatement = 216,
WithStatement = 217,
SwitchStatement = 218,
LabeledStatement = 219,
ThrowStatement = 220,
TryStatement = 221,
DebuggerStatement = 222,
VariableDeclaration = 223,
VariableDeclarationList = 224,
FunctionDeclaration = 225,
ClassDeclaration = 226,
InterfaceDeclaration = 227,
TypeAliasDeclaration = 228,
EnumDeclaration = 229,
ModuleDeclaration = 230,
ModuleBlock = 231,
CaseBlock = 232,
NamespaceExportDeclaration = 233,
ImportEqualsDeclaration = 234,
ImportDeclaration = 235,
ImportClause = 236,
NamespaceImport = 237,
NamedImports = 238,
ImportSpecifier = 239,
ExportAssignment = 240,
ExportDeclaration = 241,
NamedExports = 242,
ExportSpecifier = 243,
MissingDeclaration = 244,
ExternalModuleReference = 245,
JsxElement = 246,
JsxSelfClosingElement = 247,
JsxOpeningElement = 248,
JsxClosingElement = 249,
JsxAttribute = 250,
JsxSpreadAttribute = 251,
JsxExpression = 252,
CaseClause = 253,
DefaultClause = 254,
HeritageClause = 255,
CatchClause = 256,
PropertyAssignment = 257,
ShorthandPropertyAssignment = 258,
SpreadAssignment = 259,
EnumMember = 260,
SourceFile = 261,
JSDocTypeExpression = 262,
JSDocAllType = 263,
JSDocUnknownType = 264,
JSDocArrayType = 265,
JSDocUnionType = 266,
JSDocTupleType = 267,
JSDocNullableType = 268,
JSDocNonNullableType = 269,
JSDocRecordType = 270,
JSDocRecordMember = 271,
JSDocTypeReference = 272,
JSDocOptionalType = 273,
JSDocFunctionType = 274,
JSDocVariadicType = 275,
JSDocConstructorType = 276,
JSDocThisType = 277,
JSDocComment = 278,
JSDocTag = 279,
JSDocParameterTag = 280,
JSDocReturnTag = 281,
JSDocTypeTag = 282,
JSDocTemplateTag = 283,
JSDocTypedefTag = 284,
JSDocPropertyTag = 285,
JSDocTypeLiteral = 286,
JSDocLiteralType = 287,
JSDocNullKeyword = 288,
JSDocUndefinedKeyword = 289,
JSDocNeverKeyword = 290,
SyntaxList = 291,
NotEmittedStatement = 292,
PartiallyEmittedExpression = 293,
MergeDeclarationMarker = 294,
EndOfDeclarationMarker = 295,
Count = 296,
FirstAssignment = 57,
LastAssignment = 69,
FirstCompoundAssignment = 58,
LastCompoundAssignment = 69,
FirstReservedWord = 71,
LastReservedWord = 106,
FirstKeyword = 71,
LastKeyword = 140,
FirstFutureReservedWord = 107,
LastFutureReservedWord = 115,
FirstTypeNode = 156,
LastTypeNode = 171,
FirstPunctuation = 16,
LastPunctuation = 69,
FirstToken = 0,
LastToken = 140,
FirstTriviaToken = 2,
LastTriviaToken = 7,
FirstLiteralToken = 8,
LastLiteralToken = 12,
FirstTemplateToken = 12,
LastTemplateToken = 15,
FirstBinaryOperator = 26,
LastBinaryOperator = 69,
FirstNode = 141,
FirstJSDocNode = 262,
LastJSDocNode = 287,
FirstJSDocTagNode = 278,
LastJSDocTagNode = 290,
}
const enum NodeFlags {
None = 0,
Let = 1,
Const = 2,
NestedNamespace = 4,
Synthesized = 8,
Namespace = 16,
ExportContext = 32,
ContainsThis = 64,
HasImplicitReturn = 128,
HasExplicitReturn = 256,
GlobalAugmentation = 512,
HasClassExtends = 1024,
HasDecorators = 2048,
HasParamDecorators = 4096,
HasAsyncFunctions = 8192,
HasSpreadAttribute = 16384,
HasRestAttribute = 32768,
DisallowInContext = 65536,
YieldContext = 131072,
DecoratorContext = 262144,
AwaitContext = 524288,
ThisNodeHasError = 1048576,
JavaScriptFile = 2097152,
ThisNodeOrAnySubNodesHasError = 4194304,
HasAggregatedChildData = 8388608,
BlockScoped = 3,
ReachabilityCheckFlags = 384,
EmitHelperFlags = 64512,
ReachabilityAndEmitFlags = 64896,
ContextFlags = 3080192,
TypeExcludesFlags = 655360,
}
const enum ModifierFlags {
None = 0,
Export = 1,
Ambient = 2,
Public = 4,
Private = 8,
Protected = 16,
Static = 32,
Readonly = 64,
Abstract = 128,
Async = 256,
Default = 512,
Const = 2048,
HasComputedFlags = 536870912,
AccessibilityModifier = 28,
ParameterPropertyModifier = 92,
NonPublicAccessibilityModifier = 24,
TypeScriptModifier = 2270,
ExportDefault = 513,
}
const enum JsxFlags {
None = 0,
IntrinsicNamedElement = 1,
IntrinsicIndexedElement = 2,
IntrinsicElement = 3,
}
const enum RelationComparisonResult {
Succeeded = 1,
Failed = 2,
FailedAndReported = 3,
}
interface Node extends TextRange {
kind: SyntaxKind;
flags: NodeFlags;
modifierFlagsCache?: ModifierFlags;
transformFlags?: TransformFlags;
decorators?: NodeArray<Decorator>;
modifiers?: ModifiersArray;
id?: number;
parent?: Node;
original?: Node;
startsOnNewLine?: boolean;
jsDocComments?: JSDoc[];
symbol?: Symbol;
locals?: SymbolTable;
nextContainer?: Node;
localSymbol?: Symbol;
flowNode?: FlowNode;
emitNode?: EmitNode;
}
interface NodeArray<T extends Node> extends Array<T>, TextRange {
hasTrailingComma?: boolean;
}
interface Token<TKind extends SyntaxKind> extends Node {
kind: TKind;
}
type DotDotDotToken = Token<SyntaxKind.DotDotDotToken>;
type QuestionToken = Token<SyntaxKind.QuestionToken>;
type ColonToken = Token<SyntaxKind.ColonToken>;
type EqualsToken = Token<SyntaxKind.EqualsToken>;
type AsteriskToken = Token<SyntaxKind.AsteriskToken>;
type EqualsGreaterThanToken = Token<SyntaxKind.EqualsGreaterThanToken>;
type EndOfFileToken = Token<SyntaxKind.EndOfFileToken>;
type AtToken = Token<SyntaxKind.AtToken>;
type ReadonlyToken = Token<SyntaxKind.ReadonlyKeyword>;
type Modifier = Token<SyntaxKind.AbstractKeyword> | Token<SyntaxKind.AsyncKeyword> | Token<SyntaxKind.ConstKeyword> | Token<SyntaxKind.DeclareKeyword> | Token<SyntaxKind.DefaultKeyword> | Token<SyntaxKind.ExportKeyword> | Token<SyntaxKind.PublicKeyword> | Token<SyntaxKind.PrivateKeyword> | Token<SyntaxKind.ProtectedKeyword> | Token<SyntaxKind.ReadonlyKeyword> | Token<SyntaxKind.StaticKeyword>;
type ModifiersArray = NodeArray<Modifier>;
const enum GeneratedIdentifierKind {
None = 0,
Auto = 1,
Loop = 2,
Unique = 3,
Node = 4,
}
interface Identifier extends PrimaryExpression {
kind: SyntaxKind.Identifier;
text: string;
originalKeywordKind?: SyntaxKind;
autoGenerateKind?: GeneratedIdentifierKind;
autoGenerateId?: number;
isInJSDocNamespace?: boolean;
}
interface TransientIdentifier extends Identifier {
resolvedSymbol: Symbol;
}
interface GeneratedIdentifier extends Identifier {
autoGenerateKind: GeneratedIdentifierKind.Auto | GeneratedIdentifierKind.Loop | GeneratedIdentifierKind.Unique | GeneratedIdentifierKind.Node;
}
interface QualifiedName extends Node {
kind: SyntaxKind.QualifiedName;
left: EntityName;
right: Identifier;
}
type EntityName = Identifier | QualifiedName;
type PropertyName = Identifier | LiteralExpression | ComputedPropertyName;
type DeclarationName = Identifier | LiteralExpression | ComputedPropertyName | BindingPattern;
interface Declaration extends Node {
_declarationBrand: any;
name?: DeclarationName;
}
interface DeclarationStatement extends Declaration, Statement {
name?: Identifier | LiteralExpression;
}
interface ComputedPropertyName extends Node {
kind: SyntaxKind.ComputedPropertyName;
expression: Expression;
}
interface Decorator extends Node {
kind: SyntaxKind.Decorator;
expression: LeftHandSideExpression;
}
interface TypeParameterDeclaration extends Declaration {
kind: SyntaxKind.TypeParameter;
name: Identifier;
constraint?: TypeNode;
expression?: Expression;
}
interface SignatureDeclaration extends Declaration {
name?: PropertyName;
typeParameters?: NodeArray<TypeParameterDeclaration>;
parameters: NodeArray<ParameterDeclaration>;
type?: TypeNode;
}
interface CallSignatureDeclaration extends SignatureDeclaration, TypeElement {
kind: SyntaxKind.CallSignature;
}
interface ConstructSignatureDeclaration extends SignatureDeclaration, TypeElement {
kind: SyntaxKind.ConstructSignature;
}
type BindingName = Identifier | BindingPattern;
interface VariableDeclaration extends Declaration {
kind: SyntaxKind.VariableDeclaration;
parent?: VariableDeclarationList;
name: BindingName;
type?: TypeNode;
initializer?: Expression;
}
interface VariableDeclarationList extends Node {
kind: SyntaxKind.VariableDeclarationList;
declarations: NodeArray<VariableDeclaration>;
}
interface ParameterDeclaration extends Declaration {
kind: SyntaxKind.Parameter;
dotDotDotToken?: DotDotDotToken;
name: BindingName;
questionToken?: QuestionToken;
type?: TypeNode;
initializer?: Expression;
}
interface BindingElement extends Declaration {
kind: SyntaxKind.BindingElement;
propertyName?: PropertyName;
dotDotDotToken?: DotDotDotToken;
name: BindingName;
initializer?: Expression;
}
interface PropertySignature extends TypeElement {
kind: SyntaxKind.PropertySignature | SyntaxKind.JSDocRecordMember;
name: PropertyName;
questionToken?: QuestionToken;
type?: TypeNode;
initializer?: Expression;
}
interface PropertyDeclaration extends ClassElement {
kind: SyntaxKind.PropertyDeclaration;
questionToken?: QuestionToken;
name: PropertyName;
type?: TypeNode;
initializer?: Expression;
}
interface ObjectLiteralElement extends Declaration {
_objectLiteralBrandBrand: any;
name?: PropertyName;
}
type ObjectLiteralElementLike = PropertyAssignment | ShorthandPropertyAssignment | MethodDeclaration | AccessorDeclaration | SpreadAssignment;
interface PropertyAssignment extends ObjectLiteralElement {
kind: SyntaxKind.PropertyAssignment;
name: PropertyName;
questionToken?: QuestionToken;
initializer: Expression;
}
interface ShorthandPropertyAssignment extends ObjectLiteralElement {
kind: SyntaxKind.ShorthandPropertyAssignment;
name: Identifier;
questionToken?: QuestionToken;
equalsToken?: Token<SyntaxKind.EqualsToken>;
objectAssignmentInitializer?: Expression;
}
interface SpreadAssignment extends ObjectLiteralElement {
kind: SyntaxKind.SpreadAssignment;
expression: Expression;
}
interface VariableLikeDeclaration extends Declaration {
propertyName?: PropertyName;
dotDotDotToken?: DotDotDotToken;
name: DeclarationName;
questionToken?: QuestionToken;
type?: TypeNode;
initializer?: Expression;
}
interface PropertyLikeDeclaration extends Declaration {
name: PropertyName;
}
interface BindingPattern extends Node {
elements: NodeArray<BindingElement | ArrayBindingElement>;
}
interface ObjectBindingPattern extends BindingPattern {
kind: SyntaxKind.ObjectBindingPattern;
elements: NodeArray<BindingElement>;
}
type ArrayBindingElement = BindingElement | OmittedExpression;
interface ArrayBindingPattern extends BindingPattern {
kind: SyntaxKind.ArrayBindingPattern;
elements: NodeArray<ArrayBindingElement>;
}
interface FunctionLikeDeclaration extends SignatureDeclaration {
_functionLikeDeclarationBrand: any;
asteriskToken?: AsteriskToken;
questionToken?: QuestionToken;
body?: Block | Expression;
}
interface FunctionDeclaration extends FunctionLikeDeclaration, DeclarationStatement {
kind: SyntaxKind.FunctionDeclaration;
name?: Identifier;
body?: FunctionBody;
}
interface MethodSignature extends SignatureDeclaration, TypeElement {
kind: SyntaxKind.MethodSignature;
name: PropertyName;
}
interface MethodDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement {
kind: SyntaxKind.MethodDeclaration;
name: PropertyName;
body?: FunctionBody;
}
interface ConstructorDeclaration extends FunctionLikeDeclaration, ClassElement {
kind: SyntaxKind.Constructor;
body?: FunctionBody;
}
interface SemicolonClassElement extends ClassElement {
kind: SyntaxKind.SemicolonClassElement;
}
interface GetAccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement {
kind: SyntaxKind.GetAccessor;
name: PropertyName;
body: FunctionBody;
}
interface SetAccessorDeclaration extends FunctionLikeDeclaration, ClassElement, ObjectLiteralElement {
kind: SyntaxKind.SetAccessor;
name: PropertyName;
body: FunctionBody;
}
type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration;
interface IndexSignatureDeclaration extends SignatureDeclaration, ClassElement, TypeElement {
kind: SyntaxKind.IndexSignature;
}
interface TypeNode extends Node {
_typeNodeBrand: any;
}
interface KeywordTypeNode extends TypeNode {
kind: SyntaxKind.AnyKeyword | SyntaxKind.NumberKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.StringKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.VoidKeyword;
}
interface ThisTypeNode extends TypeNode {
kind: SyntaxKind.ThisType;
}
interface FunctionOrConstructorTypeNode extends TypeNode, SignatureDeclaration {
kind: SyntaxKind.FunctionType | SyntaxKind.ConstructorType;
}
interface FunctionTypeNode extends FunctionOrConstructorTypeNode {
kind: SyntaxKind.FunctionType;
}
interface ConstructorTypeNode extends FunctionOrConstructorTypeNode {
kind: SyntaxKind.ConstructorType;
}
interface TypeReferenceNode extends TypeNode {
kind: SyntaxKind.TypeReference;
typeName: EntityName;
typeArguments?: NodeArray<TypeNode>;
}
interface TypePredicateNode extends TypeNode {
kind: SyntaxKind.TypePredicate;
parameterName: Identifier | ThisTypeNode;
type: TypeNode;
}
interface TypeQueryNode extends TypeNode {
kind: SyntaxKind.TypeQuery;
exprName: EntityName;
}
interface TypeLiteralNode extends TypeNode, Declaration {
kind: SyntaxKind.TypeLiteral;
members: NodeArray<TypeElement>;
}
interface ArrayTypeNode extends TypeNode {
kind: SyntaxKind.ArrayType;
elementType: TypeNode;
}
interface TupleTypeNode extends TypeNode {
kind: SyntaxKind.TupleType;
elementTypes: NodeArray<TypeNode>;
}
interface UnionOrIntersectionTypeNode extends TypeNode {
kind: SyntaxKind.UnionType | SyntaxKind.IntersectionType;
types: NodeArray<TypeNode>;
}
interface UnionTypeNode extends UnionOrIntersectionTypeNode {
kind: SyntaxKind.UnionType;
}
interface IntersectionTypeNode extends UnionOrIntersectionTypeNode {
kind: SyntaxKind.IntersectionType;
}
interface ParenthesizedTypeNode extends TypeNode {
kind: SyntaxKind.ParenthesizedType;
type: TypeNode;
}
interface TypeOperatorNode extends TypeNode {
kind: SyntaxKind.TypeOperator;
operator: SyntaxKind.KeyOfKeyword;
type: TypeNode;
}
interface IndexedAccessTypeNode extends TypeNode {
kind: SyntaxKind.IndexedAccessType;
objectType: TypeNode;
indexType: TypeNode;
}
interface MappedTypeNode extends TypeNode, Declaration {
kind: SyntaxKind.MappedType;
readonlyToken?: ReadonlyToken;
typeParameter: TypeParameterDeclaration;
questionToken?: QuestionToken;
type?: TypeNode;
}
interface LiteralTypeNode extends TypeNode {
kind: SyntaxKind.LiteralType;
literal: Expression;
}
interface StringLiteral extends LiteralExpression {
kind: SyntaxKind.StringLiteral;
textSourceNode?: Identifier | StringLiteral;
}
interface Expression extends Node {
_expressionBrand: any;
contextualType?: Type;
}
interface OmittedExpression extends Expression {
kind: SyntaxKind.OmittedExpression;
}
interface PartiallyEmittedExpression extends LeftHandSideExpression {
kind: SyntaxKind.PartiallyEmittedExpression;
expression: Expression;
}
interface UnaryExpression extends Expression {
_unaryExpressionBrand: any;
}
interface IncrementExpression extends UnaryExpression {
_incrementExpressionBrand: any;
}
type PrefixUnaryOperator = SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.TildeToken | SyntaxKind.ExclamationToken;
interface PrefixUnaryExpression extends IncrementExpression {
kind: SyntaxKind.PrefixUnaryExpression;
operator: PrefixUnaryOperator;
operand: UnaryExpression;
}
type PostfixUnaryOperator = SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken;
interface PostfixUnaryExpression extends IncrementExpression {
kind: SyntaxKind.PostfixUnaryExpression;
operand: LeftHandSideExpression;
operator: PostfixUnaryOperator;
}
interface LeftHandSideExpression extends IncrementExpression {
_leftHandSideExpressionBrand: any;
}
interface MemberExpression extends LeftHandSideExpression {
_memberExpressionBrand: any;
}
interface PrimaryExpression extends MemberExpression {
_primaryExpressionBrand: any;
}
interface NullLiteral extends PrimaryExpression {
kind: SyntaxKind.NullKeyword;
}
interface BooleanLiteral extends PrimaryExpression {
kind: SyntaxKind.TrueKeyword | SyntaxKind.FalseKeyword;
}
interface ThisExpression extends PrimaryExpression {
kind: SyntaxKind.ThisKeyword;
}
interface SuperExpression extends PrimaryExpression {
kind: SyntaxKind.SuperKeyword;
}
interface DeleteExpression extends UnaryExpression {
kind: SyntaxKind.DeleteExpression;
expression: UnaryExpression;
}
interface TypeOfExpression extends UnaryExpression {
kind: SyntaxKind.TypeOfExpression;
expression: UnaryExpression;
}
interface VoidExpression extends UnaryExpression {
kind: SyntaxKind.VoidExpression;
expression: UnaryExpression;
}
interface AwaitExpression extends UnaryExpression {
kind: SyntaxKind.AwaitExpression;
expression: UnaryExpression;
}
interface YieldExpression extends Expression {
kind: SyntaxKind.YieldExpression;
asteriskToken?: AsteriskToken;
expression?: Expression;
}
type ExponentiationOperator = SyntaxKind.AsteriskAsteriskToken;
type MultiplicativeOperator = SyntaxKind.AsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken;
type MultiplicativeOperatorOrHigher = ExponentiationOperator | MultiplicativeOperator;
type AdditiveOperator = SyntaxKind.PlusToken | SyntaxKind.MinusToken;
type AdditiveOperatorOrHigher = MultiplicativeOperatorOrHigher | AdditiveOperator;
type ShiftOperator = SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken;
type ShiftOperatorOrHigher = AdditiveOperatorOrHigher | ShiftOperator;
type RelationalOperator = SyntaxKind.LessThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.InstanceOfKeyword | SyntaxKind.InKeyword;
type RelationalOperatorOrHigher = ShiftOperatorOrHigher | RelationalOperator;
type EqualityOperator = SyntaxKind.EqualsEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.ExclamationEqualsToken;
type EqualityOperatorOrHigher = RelationalOperatorOrHigher | EqualityOperator;
type BitwiseOperator = SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken;
type BitwiseOperatorOrHigher = EqualityOperatorOrHigher | BitwiseOperator;
type LogicalOperator = SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken;
type LogicalOperatorOrHigher = BitwiseOperatorOrHigher | LogicalOperator;
type CompoundAssignmentOperator = SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken;
type AssignmentOperator = SyntaxKind.EqualsToken | CompoundAssignmentOperator;
type AssignmentOperatorOrHigher = LogicalOperatorOrHigher | AssignmentOperator;
type BinaryOperator = AssignmentOperatorOrHigher | SyntaxKind.CommaToken;
type BinaryOperatorToken = Token<BinaryOperator>;
interface BinaryExpression extends Expression, Declaration {
kind: SyntaxKind.BinaryExpression;
left: Expression;
operatorToken: BinaryOperatorToken;
right: Expression;
}
interface AssignmentExpression extends BinaryExpression {
left: LeftHandSideExpression;
operatorToken: Token<SyntaxKind.EqualsToken>;
}
interface ObjectDestructuringAssignment extends AssignmentExpression {
left: ObjectLiteralExpression;
}
interface ArrayDestructuringAssignment extends AssignmentExpression {
left: ArrayLiteralExpression;
}
type DestructuringAssignment = ObjectDestructuringAssignment | ArrayDestructuringAssignment;
interface ConditionalExpression extends Expression {
kind: SyntaxKind.ConditionalExpression;
condition: Expression;
questionToken: QuestionToken;
whenTrue: Expression;
colonToken: ColonToken;
whenFalse: Expression;
}
type FunctionBody = Block;
type ConciseBody = FunctionBody | Expression;
interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclaration {
kind: SyntaxKind.FunctionExpression;
name?: Identifier;
body: FunctionBody;
}
interface ArrowFunction extends Expression, FunctionLikeDeclaration {
kind: SyntaxKind.ArrowFunction;
equalsGreaterThanToken: EqualsGreaterThanToken;
body: ConciseBody;
}
interface LiteralLikeNode extends Node {
text: string;
isUnterminated?: boolean;
hasExtendedUnicodeEscape?: boolean;
isOctalLiteral?: boolean;
}
interface LiteralExpression extends LiteralLikeNode, PrimaryExpression {
_literalExpressionBrand: any;
}
interface RegularExpressionLiteral extends LiteralExpression {
kind: SyntaxKind.RegularExpressionLiteral;
}
interface NoSubstitutionTemplateLiteral extends LiteralExpression {
kind: SyntaxKind.NoSubstitutionTemplateLiteral;
}
interface NumericLiteral extends LiteralExpression {
kind: SyntaxKind.NumericLiteral;
trailingComment?: string;
}
interface TemplateHead extends LiteralLikeNode {
kind: SyntaxKind.TemplateHead;
}
interface TemplateMiddle extends LiteralLikeNode {
kind: SyntaxKind.TemplateMiddle;
}
interface TemplateTail extends LiteralLikeNode {
kind: SyntaxKind.TemplateTail;
}
type TemplateLiteral = TemplateExpression | NoSubstitutionTemplateLiteral;
interface TemplateExpression extends PrimaryExpression {
kind: SyntaxKind.TemplateExpression;
head: TemplateHead;
templateSpans: NodeArray<TemplateSpan>;
}
interface TemplateSpan extends Node {
kind: SyntaxKind.TemplateSpan;
expression: Expression;
literal: TemplateMiddle | TemplateTail;
}
interface ParenthesizedExpression extends PrimaryExpression {
kind: SyntaxKind.ParenthesizedExpression;
expression: Expression;
}
interface ArrayLiteralExpression extends PrimaryExpression {
kind: SyntaxKind.ArrayLiteralExpression;
elements: NodeArray<Expression>;
multiLine?: boolean;
}
interface SpreadElement extends Expression {
kind: SyntaxKind.SpreadElement;
expression: Expression;
}
interface ObjectLiteralExpressionBase<T extends ObjectLiteralElement> extends PrimaryExpression, Declaration {
properties: NodeArray<T>;
}
interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike> {
kind: SyntaxKind.ObjectLiteralExpression;
multiLine?: boolean;
}
type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression;
type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;
interface PropertyAccessExpression extends MemberExpression, Declaration {
kind: SyntaxKind.PropertyAccessExpression;
expression: LeftHandSideExpression;
name: Identifier;
}
interface SuperPropertyAccessExpression extends PropertyAccessExpression {
expression: SuperExpression;
}
interface PropertyAccessEntityNameExpression extends PropertyAccessExpression {
_propertyAccessExpressionLikeQualifiedNameBrand?: any;
expression: EntityNameExpression;
}
interface ElementAccessExpression extends MemberExpression {
kind: SyntaxKind.ElementAccessExpression;
expression: LeftHandSideExpression;
argumentExpression?: Expression;
}
interface SuperElementAccessExpression extends ElementAccessExpression {
expression: SuperExpression;
}
type SuperProperty = SuperPropertyAccessExpression | SuperElementAccessExpression;
interface CallExpression extends LeftHandSideExpression, Declaration {
kind: SyntaxKind.CallExpression;
expression: LeftHandSideExpression;
typeArguments?: NodeArray<TypeNode>;
arguments: NodeArray<Expression>;
}
interface SuperCall extends CallExpression {
expression: SuperExpression;
}
interface ExpressionWithTypeArguments extends TypeNode {
kind: SyntaxKind.ExpressionWithTypeArguments;
expression: LeftHandSideExpression;
typeArguments?: NodeArray<TypeNode>;
}
interface NewExpression extends PrimaryExpression, Declaration {
kind: SyntaxKind.NewExpression;
expression: LeftHandSideExpression;
typeArguments?: NodeArray<TypeNode>;
arguments: NodeArray<Expression>;
}
interface TaggedTemplateExpression extends MemberExpression {
kind: SyntaxKind.TaggedTemplateExpression;
tag: LeftHandSideExpression;
template: TemplateLiteral;
}
type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression | Decorator;
interface AsExpression extends Expression {
kind: SyntaxKind.AsExpression;
expression: Expression;
type: TypeNode;
}
interface TypeAssertion extends UnaryExpression {
kind: SyntaxKind.TypeAssertionExpression;
type: TypeNode;
expression: UnaryExpression;
}
type AssertionExpression = TypeAssertion | AsExpression;
interface NonNullExpression extends LeftHandSideExpression {
kind: SyntaxKind.NonNullExpression;
expression: Expression;
}
interface JsxElement extends PrimaryExpression {
kind: SyntaxKind.JsxElement;
openingElement: JsxOpeningElement;
children: NodeArray<JsxChild>;
closingElement: JsxClosingElement;
}
type JsxTagNameExpression = PrimaryExpression | PropertyAccessExpression;
interface JsxOpeningElement extends Expression {
kind: SyntaxKind.JsxOpeningElement;
tagName: JsxTagNameExpression;
attributes: NodeArray<JsxAttribute | JsxSpreadAttribute>;
}
interface JsxSelfClosingElement extends PrimaryExpression {
kind: SyntaxKind.JsxSelfClosingElement;
tagName: JsxTagNameExpression;
attributes: NodeArray<JsxAttribute | JsxSpreadAttribute>;
}
type JsxOpeningLikeElement = JsxSelfClosingElement | JsxOpeningElement;
type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute;
interface JsxAttribute extends Node {
kind: SyntaxKind.JsxAttribute;
name: Identifier;
initializer?: StringLiteral | JsxExpression;
}
interface JsxSpreadAttribute extends Node {
kind: SyntaxKind.JsxSpreadAttribute;
expression: Expression;
}
interface JsxClosingElement extends Node {
kind: SyntaxKind.JsxClosingElement;
tagName: JsxTagNameExpression;
}
interface JsxExpression extends Expression {
kind: SyntaxKind.JsxExpression;
expression?: Expression;
}
interface JsxText extends Node {
kind: SyntaxKind.JsxText;
}
type JsxChild = JsxText | JsxExpression | JsxElement | JsxSelfClosingElement;
interface Statement extends Node {
_statementBrand: any;
}
interface NotEmittedStatement extends Statement {
kind: SyntaxKind.NotEmittedStatement;
}
interface EndOfDeclarationMarker extends Statement {
kind: SyntaxKind.EndOfDeclarationMarker;
}
interface MergeDeclarationMarker extends Statement {
kind: SyntaxKind.MergeDeclarationMarker;
}
interface EmptyStatement extends Statement {
kind: SyntaxKind.EmptyStatement;
}
interface DebuggerStatement extends Statement {
kind: SyntaxKind.DebuggerStatement;
}
interface MissingDeclaration extends DeclarationStatement, ClassElement, ObjectLiteralElement, TypeElement {
kind: SyntaxKind.MissingDeclaration;
name?: Identifier;
}
type BlockLike = SourceFile | Block | ModuleBlock | CaseClause;
interface Block extends Statement {
kind: SyntaxKind.Block;
statements: NodeArray<Statement>;
multiLine?: boolean;
}
interface VariableStatement extends Statement {
kind: SyntaxKind.VariableStatement;
declarationList: VariableDeclarationList;
}
interface ExpressionStatement extends Statement {
kind: SyntaxKind.ExpressionStatement;
expression: Expression;
}
interface IfStatement extends Statement {
kind: SyntaxKind.IfStatement;
expression: Expression;
thenStatement: Statement;
elseStatement?: Statement;
}
interface IterationStatement extends Statement {
statement: Statement;
}
interface DoStatement extends IterationStatement {
kind: SyntaxKind.DoStatement;
expression: Expression;
}
interface WhileStatement extends IterationStatement {
kind: SyntaxKind.WhileStatement;
expression: Expression;
}
type ForInitializer = VariableDeclarationList | Expression;
interface ForStatement extends IterationStatement {
kind: SyntaxKind.ForStatement;
initializer?: ForInitializer;
condition?: Expression;
incrementor?: Expression;
}
interface ForInStatement extends IterationStatement {
kind: SyntaxKind.ForInStatement;
initializer: ForInitializer;
expression: Expression;
}
interface ForOfStatement extends IterationStatement {
kind: SyntaxKind.ForOfStatement;
initializer: ForInitializer;
expression: Expression;
}
interface BreakStatement extends Statement {
kind: SyntaxKind.BreakStatement;
label?: Identifier;
}
interface ContinueStatement extends Statement {
kind: SyntaxKind.ContinueStatement;
label?: Identifier;
}
type BreakOrContinueStatement = BreakStatement | ContinueStatement;
interface ReturnStatement extends Statement {
kind: SyntaxKind.ReturnStatement;
expression?: Expression;
}
interface WithStatement extends Statement {
kind: SyntaxKind.WithStatement;
expression: Expression;
statement: Statement;
}
interface SwitchStatement extends Statement {
kind: SyntaxKind.SwitchStatement;
expression: Expression;
caseBlock: CaseBlock;
possiblyExhaustive?: boolean;
}
interface CaseBlock extends Node {
kind: SyntaxKind.CaseBlock;
clauses: NodeArray<CaseOrDefaultClause>;
}
interface CaseClause extends Node {
kind: SyntaxKind.CaseClause;
expression: Expression;
statements: NodeArray<Statement>;
}
interface DefaultClause extends Node {
kind: SyntaxKind.DefaultClause;
statements: NodeArray<Statement>;
}
type CaseOrDefaultClause = CaseClause | DefaultClause;
interface LabeledStatement extends Statement {
kind: SyntaxKind.LabeledStatement;
label: Identifier;
statement: Statement;
}
interface ThrowStatement extends Statement {
kind: SyntaxKind.ThrowStatement;
expression: Expression;
}
interface TryStatement extends Statement {
kind: SyntaxKind.TryStatement;
tryBlock: Block;
catchClause?: CatchClause;
finallyBlock?: Block;
}
interface CatchClause extends Node {
kind: SyntaxKind.CatchClause;
variableDeclaration: VariableDeclaration;
block: Block;
}
type DeclarationWithTypeParameters = SignatureDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration;
interface ClassLikeDeclaration extends Declaration {
name?: Identifier;
typeParameters?: NodeArray<TypeParameterDeclaration>;
heritageClauses?: NodeArray<HeritageClause>;
members: NodeArray<ClassElement>;
}
interface ClassDeclaration extends ClassLikeDeclaration, DeclarationStatement {
kind: SyntaxKind.ClassDeclaration;
name?: Identifier;
}
interface ClassExpression extends ClassLikeDeclaration, PrimaryExpression {
kind: SyntaxKind.ClassExpression;
}
interface ClassElement extends Declaration {
_classElementBrand: any;
name?: PropertyName;
}
interface TypeElement extends Declaration {
_typeElementBrand: any;
name?: PropertyName;
questionToken?: QuestionToken;
}
interface InterfaceDeclaration extends DeclarationStatement {
kind: SyntaxKind.InterfaceDeclaration;
name: Identifier;
typeParameters?: NodeArray<TypeParameterDeclaration>;
heritageClauses?: NodeArray<HeritageClause>;
members: NodeArray<TypeElement>;
}
interface HeritageClause extends Node {
kind: SyntaxKind.HeritageClause;
token: SyntaxKind;
types?: NodeArray<ExpressionWithTypeArguments>;
}
interface TypeAliasDeclaration extends DeclarationStatement {
kind: SyntaxKind.TypeAliasDeclaration;
name: Identifier;
typeParameters?: NodeArray<TypeParameterDeclaration>;
type: TypeNode;
}
interface EnumMember extends Declaration {
kind: SyntaxKind.EnumMember;
name: PropertyName;
initializer?: Expression;
}
interface EnumDeclaration extends DeclarationStatement {
kind: SyntaxKind.EnumDeclaration;
name: Identifier;
members: NodeArray<EnumMember>;
}
type ModuleBody = ModuleBlock | ModuleDeclaration;
type ModuleName = Identifier | StringLiteral;
interface ModuleDeclaration extends DeclarationStatement {
kind: SyntaxKind.ModuleDeclaration;
name: Identifier | LiteralExpression;
body?: ModuleBlock | NamespaceDeclaration | JSDocNamespaceDeclaration | Identifier;
}
interface NamespaceDeclaration extends ModuleDeclaration {
name: Identifier;
body: ModuleBlock | NamespaceDeclaration;
}
interface JSDocNamespaceDeclaration extends ModuleDeclaration {
name: Identifier;
body: JSDocNamespaceDeclaration | Identifier;
}
interface ModuleBlock extends Node, Statement {
kind: SyntaxKind.ModuleBlock;
statements: NodeArray<Statement>;
}
type ModuleReference = EntityName | ExternalModuleReference;
interface ImportEqualsDeclaration extends DeclarationStatement {
kind: SyntaxKind.ImportEqualsDeclaration;
name: Identifier;
moduleReference: ModuleReference;
}
interface ExternalModuleReference extends Node {
kind: SyntaxKind.ExternalModuleReference;
expression?: Expression;
}
interface ImportDeclaration extends Statement {
kind: SyntaxKind.ImportDeclaration;
importClause?: ImportClause;
moduleSpecifier: Expression;
}
type NamedImportBindings = NamespaceImport | NamedImports;
interface ImportClause extends Declaration {
kind: SyntaxKind.ImportClause;
name?: Identifier;
namedBindings?: NamedImportBindings;
}
interface NamespaceImport extends Declaration {
kind: SyntaxKind.NamespaceImport;
name: Identifier;
}
interface NamespaceExportDeclaration extends DeclarationStatement {
kind: SyntaxKind.NamespaceExportDeclaration;
name: Identifier;
moduleReference: LiteralLikeNode;
}
interface ExportDeclaration extends DeclarationStatement {
kind: SyntaxKind.ExportDeclaration;
exportClause?: NamedExports;
moduleSpecifier?: Expression;
}
interface NamedImports extends Node {
kind: SyntaxKind.NamedImports;
elements: NodeArray<ImportSpecifier>;
}
interface NamedExports extends Node {
kind: SyntaxKind.NamedExports;
elements: NodeArray<ExportSpecifier>;
}
type NamedImportsOrExports = NamedImports | NamedExports;
interface ImportSpecifier extends Declaration {
kind: SyntaxKind.ImportSpecifier;
propertyName?: Identifier;
name: Identifier;
}
interface ExportSpecifier extends Declaration {
kind: SyntaxKind.ExportSpecifier;
propertyName?: Identifier;
name: Identifier;
}
type ImportOrExportSpecifier = ImportSpecifier | ExportSpecifier;
interface ExportAssignment extends DeclarationStatement {
kind: SyntaxKind.ExportAssignment;
isExportEquals?: boolean;
expression: Expression;
}
interface FileReference extends TextRange {
fileName: string;
}
interface CommentRange extends TextRange {
hasTrailingNewLine?: boolean;
kind: SyntaxKind;
}
interface JSDocTypeExpression extends Node {
kind: SyntaxKind.JSDocTypeExpression;
type: JSDocType;
}
interface JSDocType extends TypeNode {
_jsDocTypeBrand: any;
}
interface JSDocAllType extends JSDocType {
kind: SyntaxKind.JSDocAllType;
}
interface JSDocUnknownType extends JSDocType {
kind: SyntaxKind.JSDocUnknownType;
}
interface JSDocArrayType extends JSDocType {
kind: SyntaxKind.JSDocArrayType;
elementType: JSDocType;
}
interface JSDocUnionType extends JSDocType {
kind: SyntaxKind.JSDocUnionType;
types: NodeArray<JSDocType>;
}
interface JSDocTupleType extends JSDocType {
kind: SyntaxKind.JSDocTupleType;
types: NodeArray<JSDocType>;
}
interface JSDocNonNullableType extends JSDocType {
kind: SyntaxKind.JSDocNonNullableType;
type: JSDocType;
}
interface JSDocNullableType extends JSDocType {
kind: SyntaxKind.JSDocNullableType;
type: JSDocType;
}
interface JSDocRecordType extends JSDocType {
kind: SyntaxKind.JSDocRecordType;
literal: TypeLiteralNode;
}
interface JSDocTypeReference extends JSDocType {
kind: SyntaxKind.JSDocTypeReference;
name: EntityName;
typeArguments: NodeArray<JSDocType>;
}
interface JSDocOptionalType extends JSDocType {
kind: SyntaxKind.JSDocOptionalType;
type: JSDocType;
}
interface JSDocFunctionType extends JSDocType, SignatureDeclaration {
kind: SyntaxKind.JSDocFunctionType;
parameters: NodeArray<ParameterDeclaration>;
type: JSDocType;
}
interface JSDocVariadicType extends JSDocType {
kind: SyntaxKind.JSDocVariadicType;
type: JSDocType;
}
interface JSDocConstructorType extends JSDocType {
kind: SyntaxKind.JSDocConstructorType;
type: JSDocType;
}
interface JSDocThisType extends JSDocType {
kind: SyntaxKind.JSDocThisType;
type: JSDocType;
}
interface JSDocLiteralType extends JSDocType {
kind: SyntaxKind.JSDocLiteralType;
literal: LiteralTypeNode;
}
type JSDocTypeReferencingNode = JSDocThisType | JSDocConstructorType | JSDocVariadicType | JSDocOptionalType | JSDocNullableType | JSDocNonNullableType;
interface JSDocRecordMember extends PropertySignature {
kind: SyntaxKind.JSDocRecordMember;
name: Identifier | LiteralExpression;
type?: JSDocType;
}
interface JSDoc extends Node {
kind: SyntaxKind.JSDocComment;
tags: NodeArray<JSDocTag> | undefined;
comment: string | undefined;
}
interface JSDocTag extends Node {
atToken: AtToken;
tagName: Identifier;
comment: string | undefined;
}
interface JSDocUnknownTag extends JSDocTag {
kind: SyntaxKind.JSDocTag;
}
interface JSDocTemplateTag extends JSDocTag {
kind: SyntaxKind.JSDocTemplateTag;
typeParameters: NodeArray<TypeParameterDeclaration>;
}
interface JSDocReturnTag extends JSDocTag {
kind: SyntaxKind.JSDocReturnTag;
typeExpression: JSDocTypeExpression;
}
interface JSDocTypeTag extends JSDocTag {
kind: SyntaxKind.JSDocTypeTag;
typeExpression: JSDocTypeExpression;
}
interface JSDocTypedefTag extends JSDocTag, Declaration {
kind: SyntaxKind.JSDocTypedefTag;
fullName?: JSDocNamespaceDeclaration | Identifier;
name?: Identifier;
typeExpression?: JSDocTypeExpression;
jsDocTypeLiteral?: JSDocTypeLiteral;
}
interface JSDocPropertyTag extends JSDocTag, TypeElement {
kind: SyntaxKind.JSDocPropertyTag;
name: Identifier;
typeExpression: JSDocTypeExpression;
}
interface JSDocTypeLiteral extends JSDocType {
kind: SyntaxKind.JSDocTypeLiteral;
jsDocPropertyTags?: NodeArray<JSDocPropertyTag>;
jsDocTypeTag?: JSDocTypeTag;
}
interface JSDocParameterTag extends JSDocTag {
kind: SyntaxKind.JSDocParameterTag;
preParameterName?: Identifier;
typeExpression?: JSDocTypeExpression;
postParameterName?: Identifier;
parameterName: Identifier;
isBracketed: boolean;
}
const enum FlowFlags {
Unreachable = 1,
Start = 2,
BranchLabel = 4,
LoopLabel = 8,
Assignment = 16,
TrueCondition = 32,
FalseCondition = 64,
SwitchClause = 128,
ArrayMutation = 256,
Referenced = 512,
Shared = 1024,
Label = 12,
Condition = 96,
}
interface FlowNode {
flags: FlowFlags;
id?: number;
}
interface FlowStart extends FlowNode {
container?: FunctionExpression | ArrowFunction | MethodDeclaration;
}
interface FlowLabel extends FlowNode {
antecedents: FlowNode[];
}
interface FlowAssignment extends FlowNode {
node: Expression | VariableDeclaration | BindingElement;
antecedent: FlowNode;
}
interface FlowCondition extends FlowNode {
expression: Expression;
antecedent: FlowNode;
}
interface FlowSwitchClause extends FlowNode {
switchStatement: SwitchStatement;
clauseStart: number;
clauseEnd: number;
antecedent: FlowNode;
}
interface FlowArrayMutation extends FlowNode {
node: CallExpression | BinaryExpression;
antecedent: FlowNode;
}
type FlowType = Type | IncompleteType;
interface IncompleteType {
flags: TypeFlags;
type: Type;
}
interface AmdDependency {
path: string;
name: string;
}
interface SourceFile extends Declaration {
kind: SyntaxKind.SourceFile;
statements: NodeArray<Statement>;
endOfFileToken: Token<SyntaxKind.EndOfFileToken>;
fileName: string;
path: Path;
text: string;
amdDependencies: AmdDependency[];
moduleName: string;
referencedFiles: FileReference[];
typeReferenceDirectives: FileReference[];
languageVariant: LanguageVariant;
isDeclarationFile: boolean;
renamedDependencies?: Map<string>;
hasNoDefaultLib: boolean;
languageVersion: ScriptTarget;
scriptKind: ScriptKind;
externalModuleIndicator: Node;
commonJsModuleIndicator: Node;
identifiers: Map<string>;
nodeCount: number;
identifierCount: number;
symbolCount: number;
parseDiagnostics: Diagnostic[];
additionalSyntacticDiagnostics?: Diagnostic[];
bindDiagnostics: Diagnostic[];
lineMap: number[];
classifiableNames?: Map<string>;
resolvedModules: Map<ResolvedModuleFull>;
resolvedTypeReferenceDirectiveNames: Map<ResolvedTypeReferenceDirective>;
imports: LiteralExpression[];
moduleAugmentations: LiteralExpression[];
patternAmbientModules?: PatternAmbientModule[];
ambientModuleNames: string[];
externalHelpersModuleName?: Identifier;
}
interface ScriptReferenceHost {
getCompilerOptions(): CompilerOptions;
getSourceFile(fileName: string): SourceFile;
getSourceFileByPath(path: Path): SourceFile;
getCurrentDirectory(): string;
}
interface ParseConfigHost {
useCaseSensitiveFileNames: boolean;
readDirectory(rootDir: string, extensions: string[], excludes: string[], includes: string[]): string[];
fileExists(path: string): boolean;
readFile(path: string): string;
}
interface WriteFileCallback {
(fileName: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void, sourceFiles?: SourceFile[]): void;
}
class OperationCanceledException {
}
interface CancellationToken {
isCancellationRequested(): boolean;
throwIfCancellationRequested(): void;
}
interface Program extends ScriptReferenceHost {
getRootFileNames(): string[];
getSourceFiles(): SourceFile[];
emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean): EmitResult;
getOptionsDiagnostics(cancellationToken?: CancellationToken): Diagnostic[];
getGlobalDiagnostics(cancellationToken?: CancellationToken): Diagnostic[];
getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): Diagnostic[];
getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): Diagnostic[];
getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): Diagnostic[];
getTypeChecker(): TypeChecker;
getCommonSourceDirectory(): string;
getDiagnosticsProducingTypeChecker(): TypeChecker;
dropDiagnosticsProducingTypeChecker(): void;
getClassifiableNames(): Map<string>;
getNodeCount(): number;
getIdentifierCount(): number;
getSymbolCount(): number;
getTypeCount(): number;
getFileProcessingDiagnostics(): DiagnosticCollection;
getResolvedTypeReferenceDirectives(): Map<ResolvedTypeReferenceDirective>;
isSourceFileFromExternalLibrary(file: SourceFile): boolean;
structureIsReused?: boolean;
}
interface SourceMapSpan {
emittedLine: number;
emittedColumn: number;
sourceLine: number;
sourceColumn: number;
nameIndex?: number;
sourceIndex: number;
}
interface SourceMapData {
sourceMapFilePath: string;
jsSourceMappingURL: string;
sourceMapFile: string;
sourceMapSourceRoot: string;
sourceMapSources: string[];
sourceMapSourcesContent?: string[];
inputSourceFileNames: string[];
sourceMapNames?: string[];
sourceMapMappings: string;
sourceMapDecodedMappings: SourceMapSpan[];
}
enum ExitStatus {
Success = 0,
DiagnosticsPresent_OutputsSkipped = 1,
DiagnosticsPresent_OutputsGenerated = 2,
}
interface EmitResult {
emitSkipped: boolean;
diagnostics: Diagnostic[];
emittedFiles: string[];
sourceMaps: SourceMapData[];
}
interface TypeCheckerHost {
getCompilerOptions(): CompilerOptions;
getSourceFiles(): SourceFile[];
getSourceFile(fileName: string): SourceFile;
getResolvedTypeReferenceDirectives(): Map<ResolvedTypeReferenceDirective>;
}
interface TypeChecker {
getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type;
getDeclaredTypeOfSymbol(symbol: Symbol): Type;
getPropertiesOfType(type: Type): Symbol[];
getPropertyOfType(type: Type, propertyName: string): Symbol;
getSignaturesOfType(type: Type, kind: SignatureKind): Signature[];
getIndexTypeOfType(type: Type, kind: IndexKind): Type;
getBaseTypes(type: InterfaceType): ObjectType[];
getReturnTypeOfSignature(signature: Signature): Type;
getNonNullableType(type: Type): Type;
getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[];
getSymbolAtLocation(node: Node): Symbol;
getSymbolsOfParameterPropertyDeclaration(parameter: ParameterDeclaration, parameterName: string): Symbol[];
getShorthandAssignmentValueSymbol(location: Node): Symbol;
getExportSpecifierLocalTargetSymbol(location: ExportSpecifier): Symbol;
getPropertySymbolOfDestructuringAssignment(location: Identifier): Symbol;
getTypeAtLocation(node: Node): Type;
typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string;
symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): string;
getSymbolDisplayBuilder(): SymbolDisplayBuilder;
getFullyQualifiedName(symbol: Symbol): string;
getAugmentedPropertiesOfType(type: Type): Symbol[];
getRootSymbols(symbol: Symbol): Symbol[];
getContextualType(node: Expression): Type;
getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[]): Signature;
getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature;
isImplementationOfOverload(node: FunctionLikeDeclaration): boolean;
isUndefinedSymbol(symbol: Symbol): boolean;
isArgumentsSymbol(symbol: Symbol): boolean;
isUnknownSymbol(symbol: Symbol): boolean;
getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): number;
isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean;
getAliasedSymbol(symbol: Symbol): Symbol;
getExportsOfModule(moduleSymbol: Symbol): Symbol[];
getJsxElementAttributesType(elementNode: JsxOpeningLikeElement): Type;
getJsxIntrinsicTagNames(): Symbol[];
isOptionalParameter(node: ParameterDeclaration): boolean;
getAmbientModules(): Symbol[];
tryFindAmbientModuleWithoutAugmentations(moduleName: string): Symbol;
getDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): Diagnostic[];
getGlobalDiagnostics(): Diagnostic[];
getEmitResolver(sourceFile?: SourceFile, cancellationToken?: CancellationToken): EmitResolver;
getNodeCount(): number;
getIdentifierCount(): number;
getSymbolCount(): number;
getTypeCount(): number;
}
interface SymbolDisplayBuilder {
buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void;
buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): void;
buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
buildTypePredicateDisplay(predicate: TypePredicate, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
buildDisplayForParametersAndDelimiters(thisParameter: Symbol, parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
}
interface SymbolWriter {
writeKeyword(text: string): void;
writeOperator(text: string): void;
writePunctuation(text: string): void;
writeSpace(text: string): void;
writeStringLiteral(text: string): void;
writeParameter(text: string): void;
writeSymbol(text: string, symbol: Symbol): void;
writeLine(): void;
increaseIndent(): void;
decreaseIndent(): void;
clear(): void;
trackSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void;
reportInaccessibleThisError(): void;
}
const enum TypeFormatFlags {
None = 0,
WriteArrayAsGenericType = 1,
UseTypeOfFunction = 2,
NoTruncation = 4,
WriteArrowStyleSignature = 8,
WriteOwnNameForAnyLike = 16,
WriteTypeArgumentsOfSignature = 32,
InElementType = 64,
UseFullyQualifiedType = 128,
InFirstTypeArgument = 256,
InTypeAlias = 512,
UseTypeAliasValue = 1024,
}
const enum SymbolFormatFlags {
None = 0,
WriteTypeParametersOrArguments = 1,
UseOnlyExternalAliasing = 2,
}
const enum SymbolAccessibility {
Accessible = 0,
NotAccessible = 1,
CannotBeNamed = 2,
}
const enum SyntheticSymbolKind {
UnionOrIntersection = 0,
Spread = 1,
}
const enum TypePredicateKind {
This = 0,
Identifier = 1,
}
interface TypePredicateBase {
kind: TypePredicateKind;
type: Type;
}
interface ThisTypePredicate extends TypePredicateBase {
kind: TypePredicateKind.This;
}
interface IdentifierTypePredicate extends TypePredicateBase {
kind: TypePredicateKind.Identifier;
parameterName: string;
parameterIndex: number;
}
type TypePredicate = IdentifierTypePredicate | ThisTypePredicate;
type AnyImportSyntax = ImportDeclaration | ImportEqualsDeclaration;
interface SymbolVisibilityResult {
accessibility: SymbolAccessibility;
aliasesToMakeVisible?: AnyImportSyntax[];
errorSymbolName?: string;
errorNode?: Node;
}
interface SymbolAccessibilityResult extends SymbolVisibilityResult {
errorModuleName?: string;
}
enum TypeReferenceSerializationKind {
Unknown = 0,
TypeWithConstructSignatureAndValue = 1,
VoidNullableOrNeverType = 2,
NumberLikeType = 3,
StringLikeType = 4,
BooleanType = 5,
ArrayLikeType = 6,
ESSymbolType = 7,
Promise = 8,
TypeWithCallSignature = 9,
ObjectType = 10,
}
interface EmitResolver {
hasGlobalName(name: string): boolean;
getReferencedExportContainer(node: Identifier, prefixLocals?: boolean): SourceFile | ModuleDeclaration | EnumDeclaration;
getReferencedImportDeclaration(node: Identifier): Declaration;
getReferencedDeclarationWithCollidingName(node: Identifier): Declaration;
isDeclarationWithCollidingName(node: Declaration): boolean;
isValueAliasDeclaration(node: Node): boolean;
isReferencedAliasDeclaration(node: Node, checkChildren?: boolean): boolean;
isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean;
getNodeCheckFlags(node: Node): NodeCheckFlags;
isDeclarationVisible(node: Declaration): boolean;
collectLinkedAliases(node: Identifier): Node[];
isImplementationOfOverload(node: FunctionLikeDeclaration): boolean;
writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
writeTypeOfExpression(expr: Expression, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
writeBaseConstructorTypeOfClass(node: ClassLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags, shouldComputeAliasToMarkVisible: boolean): SymbolAccessibilityResult;
isEntityNameVisible(entityName: EntityNameOrEntityNameExpression, enclosingDeclaration: Node): SymbolVisibilityResult;
getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): number;
getReferencedValueDeclaration(reference: Identifier): Declaration;
getTypeReferenceSerializationKind(typeName: EntityName, location?: Node): TypeReferenceSerializationKind;
isOptionalParameter(node: ParameterDeclaration): boolean;
moduleExportsSomeValue(moduleReferenceExpression: Expression): boolean;
isArgumentsLocalBinding(node: Identifier): boolean;
getExternalModuleFileFromDeclaration(declaration: ImportEqualsDeclaration | ImportDeclaration | ExportDeclaration | ModuleDeclaration): SourceFile;
getTypeReferenceDirectivesForEntityName(name: EntityNameOrEntityNameExpression): string[];
getTypeReferenceDirectivesForSymbol(symbol: Symbol, meaning?: SymbolFlags): string[];
isLiteralConstDeclaration(node: VariableDeclaration | PropertyDeclaration | PropertySignature | ParameterDeclaration): boolean;
writeLiteralConstValue(node: VariableDeclaration | PropertyDeclaration | PropertySignature | ParameterDeclaration, writer: SymbolWriter): void;
getJsxFactoryEntity(): EntityName;
}
const enum SymbolFlags {
None = 0,
FunctionScopedVariable = 1,
BlockScopedVariable = 2,
Property = 4,
EnumMember = 8,
Function = 16,
Class = 32,
Interface = 64,
ConstEnum = 128,
RegularEnum = 256,
ValueModule = 512,
NamespaceModule = 1024,
TypeLiteral = 2048,
ObjectLiteral = 4096,
Method = 8192,
Constructor = 16384,
GetAccessor = 32768,
SetAccessor = 65536,
Signature = 131072,
TypeParameter = 262144,
TypeAlias = 524288,
ExportValue = 1048576,
ExportType = 2097152,
ExportNamespace = 4194304,
Alias = 8388608,
Instantiated = 16777216,
Merged = 33554432,
Transient = 67108864,
Prototype = 134217728,
SyntheticProperty = 268435456,
Optional = 536870912,
ExportStar = 1073741824,
Enum = 384,
Variable = 3,
Value = 107455,
Type = 793064,
Namespace = 1920,
Module = 1536,
Accessor = 98304,
FunctionScopedVariableExcludes = 107454,
BlockScopedVariableExcludes = 107455,
ParameterExcludes = 107455,
PropertyExcludes = 0,
EnumMemberExcludes = 900095,
FunctionExcludes = 106927,
ClassExcludes = 899519,
InterfaceExcludes = 792968,
RegularEnumExcludes = 899327,
ConstEnumExcludes = 899967,
ValueModuleExcludes = 106639,
NamespaceModuleExcludes = 0,
MethodExcludes = 99263,
GetAccessorExcludes = 41919,
SetAccessorExcludes = 74687,
TypeParameterExcludes = 530920,
TypeAliasExcludes = 793064,
AliasExcludes = 8388608,
ModuleMember = 8914931,
ExportHasLocal = 944,
HasExports = 1952,
HasMembers = 6240,
BlockScoped = 418,
PropertyOrAccessor = 98308,
Export = 7340032,
ClassMember = 106500,
Classifiable = 788448,
}
interface Symbol {
flags: SymbolFlags;
name: string;
declarations?: Declaration[];
valueDeclaration?: Declaration;
members?: SymbolTable;
exports?: SymbolTable;
globalExports?: SymbolTable;
isReadonly?: boolean;
id?: number;
mergeId?: number;
parent?: Symbol;
exportSymbol?: Symbol;
constEnumOnlyModule?: boolean;
isReferenced?: boolean;
isReplaceableByMethod?: boolean;
isAssigned?: boolean;
}
interface SymbolLinks {
target?: Symbol;
type?: Type;
declaredType?: Type;
typeParameters?: TypeParameter[];
inferredClassType?: Type;
instantiations?: Map<Type>;
mapper?: TypeMapper;
referenced?: boolean;
containingType?: UnionOrIntersectionType;
leftSpread?: Symbol;
rightSpread?: Symbol;
hasNonUniformType?: boolean;
isPartial?: boolean;
isDiscriminantProperty?: boolean;
resolvedExports?: SymbolTable;
exportsChecked?: boolean;
isDeclarationWithCollidingName?: boolean;
bindingElement?: BindingElement;
exportsSomeValue?: boolean;
}
interface TransientSymbol extends Symbol, SymbolLinks {
}
type SymbolTable = Map<Symbol>;
interface Pattern {
prefix: string;
suffix: string;
}
interface PatternAmbientModule {
pattern: Pattern;
symbol: Symbol;
}
const enum NodeCheckFlags {
TypeChecked = 1,
LexicalThis = 2,
CaptureThis = 4,
SuperInstance = 256,
SuperStatic = 512,
ContextChecked = 1024,
AsyncMethodWithSuper = 2048,
AsyncMethodWithSuperBinding = 4096,
CaptureArguments = 8192,
EnumValuesComputed = 16384,
LexicalModuleMergesWithClass = 32768,
LoopWithCapturedBlockScopedBinding = 65536,
CapturedBlockScopedBinding = 131072,
BlockScopedBindingInLoop = 262144,
ClassWithBodyScopedClassBinding = 524288,
BodyScopedClassBinding = 1048576,
NeedsLoopOutParameter = 2097152,
AssignmentsMarked = 4194304,
ClassWithConstructorReference = 8388608,
ConstructorReferenceInClass = 16777216,
}
interface NodeLinks {
flags?: NodeCheckFlags;
resolvedType?: Type;
resolvedSignature?: Signature;
resolvedSymbol?: Symbol;
resolvedIndexInfo?: IndexInfo;
maybeTypePredicate?: boolean;
enumMemberValue?: number;
isVisible?: boolean;
hasReportedStatementInAmbientContext?: boolean;
jsxFlags?: JsxFlags;
resolvedJsxType?: Type;
hasSuperCall?: boolean;
superCall?: ExpressionStatement;
switchTypes?: Type[];
}
const enum TypeFlags {
Any = 1,
String = 2,
Number = 4,
Boolean = 8,
Enum = 16,
StringLiteral = 32,
NumberLiteral = 64,
BooleanLiteral = 128,
EnumLiteral = 256,
ESSymbol = 512,
Void = 1024,
Undefined = 2048,
Null = 4096,
Never = 8192,
TypeParameter = 16384,
Object = 32768,
Union = 65536,
Intersection = 131072,
Index = 262144,
IndexedAccess = 524288,
FreshLiteral = 1048576,
ContainsWideningType = 2097152,
ContainsObjectLiteral = 4194304,
ContainsAnyFunctionType = 8388608,
Nullable = 6144,
Literal = 480,
StringOrNumberLiteral = 96,
DefinitelyFalsy = 7392,
PossiblyFalsy = 7406,
Intrinsic = 16015,
Primitive = 8190,
StringLike = 34,
NumberLike = 340,
BooleanLike = 136,
EnumLike = 272,
UnionOrIntersection = 196608,
StructuredType = 229376,
StructuredOrTypeParameter = 507904,
Narrowable = 1033215,
NotUnionOrUnit = 33281,
RequiresWidening = 6291456,
PropagatingFlags = 14680064,
}
type DestructuringPattern = BindingPattern | ObjectLiteralExpression | ArrayLiteralExpression;
interface Type {
flags: TypeFlags;
id: number;
symbol?: Symbol;
pattern?: DestructuringPattern;
aliasSymbol?: Symbol;
aliasTypeArguments?: Type[];
}
interface IntrinsicType extends Type {
intrinsicName: string;
}
interface LiteralType extends Type {
text: string;
freshType?: LiteralType;
regularType?: LiteralType;
}
interface EnumType extends Type {
memberTypes: Map<EnumLiteralType>;
}
interface EnumLiteralType extends LiteralType {
baseType: EnumType & UnionType;
}
const enum ObjectFlags {
Class = 1,
Interface = 2,
Reference = 4,
Tuple = 8,
Anonymous = 16,
Mapped = 32,
Instantiated = 64,
ObjectLiteral = 128,
EvolvingArray = 256,
ObjectLiteralPatternWithComputedProperties = 512,
ClassOrInterface = 3,
}
interface ObjectType extends Type {
objectFlags: ObjectFlags;
}
interface InterfaceType extends ObjectType {
typeParameters: TypeParameter[];
outerTypeParameters: TypeParameter[];
localTypeParameters: TypeParameter[];
thisType: TypeParameter;
resolvedBaseConstructorType?: Type;
resolvedBaseTypes: ObjectType[];
}
interface InterfaceTypeWithDeclaredMembers extends InterfaceType {
declaredProperties: Symbol[];
declaredCallSignatures: Signature[];
declaredConstructSignatures: Signature[];
declaredStringIndexInfo: IndexInfo;
declaredNumberIndexInfo: IndexInfo;
}
interface TypeReference extends ObjectType {
target: GenericType;
typeArguments: Type[];
}
interface GenericType extends InterfaceType, TypeReference {
instantiations: Map<TypeReference>;
}
interface UnionOrIntersectionType extends Type {
types: Type[];
resolvedProperties: SymbolTable;
couldContainTypeParameters: boolean;
}
interface UnionType extends UnionOrIntersectionType {
}
interface IntersectionType extends UnionOrIntersectionType {
}
type StructuredType = ObjectType | UnionType | IntersectionType;
interface AnonymousType extends ObjectType {
target?: AnonymousType;
mapper?: TypeMapper;
}
interface MappedType extends ObjectType {
declaration: MappedTypeNode;
typeParameter?: TypeParameter;
constraintType?: Type;
templateType?: Type;
mapper?: TypeMapper;
}
interface EvolvingArrayType extends ObjectType {
elementType: Type;
finalArrayType?: Type;
}
interface ResolvedType extends ObjectType, UnionOrIntersectionType {
members: SymbolTable;
properties: Symbol[];
callSignatures: Signature[];
constructSignatures: Signature[];
stringIndexInfo?: IndexInfo;
numberIndexInfo?: IndexInfo;
}
interface FreshObjectLiteralType extends ResolvedType {
regularType: ResolvedType;
}
interface IterableOrIteratorType extends ObjectType, UnionType {
iterableElementType?: Type;
iteratorElementType?: Type;
}
interface TypeParameter extends Type {
constraint: Type;
target?: TypeParameter;
mapper?: TypeMapper;
resolvedApparentType: Type;
resolvedIndexType: IndexType;
resolvedIndexedAccessTypes: IndexedAccessType[];
isThisType?: boolean;
}
interface IndexType extends Type {
type: TypeParameter;
}
interface IndexedAccessType extends Type {
objectType: Type;
indexType: TypeParameter;
}
const enum SignatureKind {
Call = 0,
Construct = 1,
}
interface Signature {
declaration: SignatureDeclaration;
typeParameters: TypeParameter[];
parameters: Symbol[];
thisParameter?: Symbol;
resolvedReturnType: Type;
minArgumentCount: number;
hasRestParameter: boolean;
hasLiteralTypes: boolean;
target?: Signature;
mapper?: TypeMapper;
unionSignatures?: Signature[];
erasedSignatureCache?: Signature;
isolatedSignatureType?: ObjectType;
typePredicate?: TypePredicate;
instantiations?: Map<Signature>;
}
const enum IndexKind {
String = 0,
Number = 1,
}
interface IndexInfo {
type: Type;
isReadonly: boolean;
declaration?: SignatureDeclaration;
}
interface TypeMapper {
(t: TypeParameter): Type;
mappedTypes?: Type[];
instantiations?: Type[];
context?: InferenceContext;
}
interface TypeInferences {
primary: Type[];
secondary: Type[];
topLevel: boolean;
isFixed: boolean;
}
interface InferenceContext {
signature: Signature;
inferUnionTypes: boolean;
inferences: TypeInferences[];
inferredTypes: Type[];
mapper?: TypeMapper;
failedTypeParameterIndex?: number;
}
const enum SpecialPropertyAssignmentKind {
None = 0,
ExportsProperty = 1,
ModuleExports = 2,
PrototypeProperty = 3,
ThisProperty = 4,
}
interface DiagnosticMessage {
key: string;
category: DiagnosticCategory;
code: number;
message: string;
}
interface DiagnosticMessageChain {
messageText: string;
category: DiagnosticCategory;
code: number;
next?: DiagnosticMessageChain;
}
interface Diagnostic {
file: SourceFile;
start: number;
length: number;
messageText: string | DiagnosticMessageChain;
category: DiagnosticCategory;
code: number;
}
enum DiagnosticCategory {
Warning = 0,
Error = 1,
Message = 2,
}
enum ModuleResolutionKind {
Classic = 1,
NodeJs = 2,
}
type CompilerOptionsValue = string | number | boolean | (string | number)[] | string[] | MapLike<string[]>;
interface CompilerOptions {
allowJs?: boolean;
allowNonTsExtensions?: boolean;
allowSyntheticDefaultImports?: boolean;
allowUnreachableCode?: boolean;
allowUnusedLabels?: boolean;
alwaysStrict?: boolean;
baseUrl?: string;
charset?: string;
configFilePath?: string;
declaration?: boolean;
declarationDir?: string;
diagnostics?: boolean;
extendedDiagnostics?: boolean;
disableSizeLimit?: boolean;
emitBOM?: boolean;
emitDecoratorMetadata?: boolean;
experimentalDecorators?: boolean;
forceConsistentCasingInFileNames?: boolean;
help?: boolean;
importHelpers?: boolean;
init?: boolean;
inlineSourceMap?: boolean;
inlineSources?: boolean;
isolatedModules?: boolean;
jsx?: JsxEmit;
lib?: string[];
listEmittedFiles?: boolean;
listFiles?: boolean;
locale?: string;
mapRoot?: string;
maxNodeModuleJsDepth?: number;
module?: ModuleKind;
moduleResolution?: ModuleResolutionKind;
newLine?: NewLineKind;
noEmit?: boolean;
noEmitForJsFiles?: boolean;
noEmitHelpers?: boolean;
noEmitOnError?: boolean;
noErrorTruncation?: boolean;
noFallthroughCasesInSwitch?: boolean;
noImplicitAny?: boolean;
noImplicitReturns?: boolean;
noImplicitThis?: boolean;
noUnusedLocals?: boolean;
noUnusedParameters?: boolean;
noImplicitUseStrict?: boolean;
noLib?: boolean;
noResolve?: boolean;
out?: string;
outDir?: string;
outFile?: string;
paths?: MapLike<string[]>;
preserveConstEnums?: boolean;
project?: string;
pretty?: DiagnosticStyle;
reactNamespace?: string;
jsxFactory?: string;
removeComments?: boolean;
rootDir?: string;
rootDirs?: string[];
skipLibCheck?: boolean;
skipDefaultLibCheck?: boolean;
sourceMap?: boolean;
sourceRoot?: string;
strictNullChecks?: boolean;
stripInternal?: boolean;
suppressExcessPropertyErrors?: boolean;
suppressImplicitAnyIndexErrors?: boolean;
suppressOutputPathCheck?: boolean;
target?: ScriptTarget;
traceResolution?: boolean;
types?: string[];
typeRoots?: string[];
version?: boolean;
watch?: boolean;
[option: string]: CompilerOptionsValue | undefined;
}
interface TypingOptions {
enableAutoDiscovery?: boolean;
include?: string[];
exclude?: string[];
[option: string]: string[] | boolean | undefined;
}
interface DiscoverTypingsInfo {
fileNames: string[];
projectRootPath: string;
safeListPath: string;
packageNameToTypingLocation: Map<string>;
typingOptions: TypingOptions;
compilerOptions: CompilerOptions;
unresolvedImports: ReadonlyArray<string>;
}
enum ModuleKind {
None = 0,
CommonJS = 1,
AMD = 2,
UMD = 3,
System = 4,
ES2015 = 5,
}
const enum JsxEmit {
None = 0,
Preserve = 1,
React = 2,
}
const enum NewLineKind {
CarriageReturnLineFeed = 0,
LineFeed = 1,
}
interface LineAndCharacter {
line: number;
character: number;
}
const enum ScriptKind {
Unknown = 0,
JS = 1,
JSX = 2,
TS = 3,
TSX = 4,
}
const enum ScriptTarget {
ES3 = 0,
ES5 = 1,
ES2015 = 2,
ES2016 = 3,
ES2017 = 4,
ESNext = 5,
Latest = 5,
}
const enum LanguageVariant {
Standard = 0,
JSX = 1,
}
const enum DiagnosticStyle {
Simple = 0,
Pretty = 1,
}
interface ParsedCommandLine {
options: CompilerOptions;
typingOptions?: TypingOptions;
fileNames: string[];
raw?: any;
errors: Diagnostic[];
wildcardDirectories?: MapLike<WatchDirectoryFlags>;
compileOnSave?: boolean;
}
const enum WatchDirectoryFlags {
None = 0,
Recursive = 1,
}
interface ExpandResult {
fileNames: string[];
wildcardDirectories: MapLike<WatchDirectoryFlags>;
}
interface CommandLineOptionBase {
name: string;
type: "string" | "number" | "boolean" | "object" | "list" | Map<number | string>;
isFilePath?: boolean;
shortName?: string;
description?: DiagnosticMessage;
paramType?: DiagnosticMessage;
experimental?: boolean;
isTSConfigOnly?: boolean;
}
interface CommandLineOptionOfPrimitiveType extends CommandLineOptionBase {
type: "string" | "number" | "boolean";
}
interface CommandLineOptionOfCustomType extends CommandLineOptionBase {
type: Map<number | string>;
}
interface TsConfigOnlyOption extends CommandLineOptionBase {
type: "object";
}
interface CommandLineOptionOfListType extends CommandLineOptionBase {
type: "list";
element: CommandLineOptionOfCustomType | CommandLineOptionOfPrimitiveType;
}
type CommandLineOption = CommandLineOptionOfCustomType | CommandLineOptionOfPrimitiveType | TsConfigOnlyOption | CommandLineOptionOfListType;
const enum CharacterCodes {
nullCharacter = 0,
maxAsciiCharacter = 127,
lineFeed = 10,
carriageReturn = 13,
lineSeparator = 8232,
paragraphSeparator = 8233,
nextLine = 133,
space = 32,
nonBreakingSpace = 160,
enQuad = 8192,
emQuad = 8193,
enSpace = 8194,
emSpace = 8195,
threePerEmSpace = 8196,
fourPerEmSpace = 8197,
sixPerEmSpace = 8198,
figureSpace = 8199,
punctuationSpace = 8200,
thinSpace = 8201,
hairSpace = 8202,
zeroWidthSpace = 8203,
narrowNoBreakSpace = 8239,
ideographicSpace = 12288,
mathematicalSpace = 8287,
ogham = 5760,
_ = 95,
$ = 36,
_0 = 48,
_1 = 49,
_2 = 50,
_3 = 51,
_4 = 52,
_5 = 53,
_6 = 54,
_7 = 55,
_8 = 56,
_9 = 57,
a = 97,
b = 98,
c = 99,
d = 100,
e = 101,
f = 102,
g = 103,
h = 104,
i = 105,
j = 106,
k = 107,
l = 108,
m = 109,
n = 110,
o = 111,
p = 112,
q = 113,
r = 114,
s = 115,
t = 116,
u = 117,
v = 118,
w = 119,
x = 120,
y = 121,
z = 122,
A = 65,
B = 66,
C = 67,
D = 68,
E = 69,
F = 70,
G = 71,
H = 72,
I = 73,
J = 74,
K = 75,
L = 76,
M = 77,
N = 78,
O = 79,
P = 80,
Q = 81,
R = 82,
S = 83,
T = 84,
U = 85,
V = 86,
W = 87,
X = 88,
Y = 89,
Z = 90,
ampersand = 38,
asterisk = 42,
at = 64,
backslash = 92,
backtick = 96,
bar = 124,
caret = 94,
closeBrace = 125,
closeBracket = 93,
closeParen = 41,
colon = 58,
comma = 44,
dot = 46,
doubleQuote = 34,
equals = 61,
exclamation = 33,
greaterThan = 62,
hash = 35,
lessThan = 60,
minus = 45,
openBrace = 123,
openBracket = 91,
openParen = 40,
percent = 37,
plus = 43,
question = 63,
semicolon = 59,
singleQuote = 39,
slash = 47,
tilde = 126,
backspace = 8,
formFeed = 12,
byteOrderMark = 65279,
tab = 9,
verticalTab = 11,
}
interface ModuleResolutionHost {
fileExists(fileName: string): boolean;
readFile(fileName: string): string;
trace?(s: string): void;
directoryExists?(directoryName: string): boolean;
realpath?(path: string): string;
getCurrentDirectory?(): string;
getDirectories?(path: string): string[];
}
interface ResolvedModule {
resolvedFileName: string;
isExternalLibraryImport?: boolean;
}
interface ResolvedModuleFull extends ResolvedModule {
extension: Extension;
}
enum Extension {
Ts = 0,
Tsx = 1,
Dts = 2,
Js = 3,
Jsx = 4,
LastTypeScriptExtension = 2,
}
interface ResolvedModuleWithFailedLookupLocations {
resolvedModule: ResolvedModuleFull | undefined;
failedLookupLocations: string[];
}
interface ResolvedTypeReferenceDirective {
primary: boolean;
resolvedFileName?: string;
}
interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations {
resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective;
failedLookupLocations: string[];
}
interface CompilerHost extends ModuleResolutionHost {
getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile;
getSourceFileByPath?(fileName: string, path: Path, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile;
getCancellationToken?(): CancellationToken;
getDefaultLibFileName(options: CompilerOptions): string;
getDefaultLibLocation?(): string;
writeFile: WriteFileCallback;
getCurrentDirectory(): string;
getDirectories(path: string): string[];
getCanonicalFileName(fileName: string): string;
useCaseSensitiveFileNames(): boolean;
getNewLine(): string;
resolveModuleNames?(moduleNames: string[], containingFile: string): ResolvedModule[];
resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[], containingFile: string): ResolvedTypeReferenceDirective[];
getEnvironmentVariable?(name: string): string;
}
const enum TransformFlags {
None = 0,
TypeScript = 1,
ContainsTypeScript = 2,
Jsx = 4,
ContainsJsx = 8,
ESNext = 16,
ContainsESNext = 32,
ES2017 = 64,
ContainsES2017 = 128,
ES2016 = 256,
ContainsES2016 = 512,
ES2015 = 1024,
ContainsES2015 = 2048,
Generator = 4096,
ContainsGenerator = 8192,
DestructuringAssignment = 16384,
ContainsDestructuringAssignment = 32768,
ContainsDecorators = 65536,
ContainsPropertyInitializer = 131072,
ContainsLexicalThis = 262144,
ContainsCapturedLexicalThis = 524288,
ContainsLexicalThisInComputedPropertyName = 1048576,
ContainsDefaultValueAssignments = 2097152,
ContainsParameterPropertyAssignments = 4194304,
ContainsSpreadExpression = 8388608,
ContainsComputedPropertyName = 16777216,
ContainsBlockScopedBinding = 33554432,
ContainsBindingPattern = 67108864,
ContainsYield = 134217728,
ContainsHoistedDeclarationOrCompletion = 268435456,
HasComputedFlags = 536870912,
AssertTypeScript = 3,
AssertJsx = 12,
AssertESNext = 48,
AssertES2017 = 192,
AssertES2016 = 768,
AssertES2015 = 3072,
AssertGenerator = 12288,
AssertDestructuringAssignment = 49152,
NodeExcludes = 536892757,
ArrowFunctionExcludes = 979719509,
FunctionExcludes = 980243797,
ConstructorExcludes = 975983957,
MethodOrAccessorExcludes = 975983957,
ClassExcludes = 559895893,
ModuleExcludes = 839734613,
TypeExcludes = -3,
ObjectLiteralExcludes = 554784085,
ArrayLiteralOrCallOrNewExcludes = 545281365,
VariableDeclarationListExcludes = 604001621,
ParameterExcludes = 604001621,
TypeScriptClassSyntaxMask = 4390912,
ES2015FunctionSyntaxMask = 2621440,
}
interface EmitNode {
flags?: EmitFlags;
commentRange?: TextRange;
sourceMapRange?: TextRange;
tokenSourceMapRanges?: Map<TextRange>;
annotatedNodes?: Node[];
constantValue?: number;
}
const enum EmitFlags {
EmitEmitHelpers = 1,
EmitExportStar = 2,
EmitSuperHelper = 4,
EmitAdvancedSuperHelper = 8,
UMDDefine = 16,
SingleLine = 32,
AdviseOnEmitNode = 64,
NoSubstitution = 128,
CapturesThis = 256,
NoLeadingSourceMap = 512,
NoTrailingSourceMap = 1024,
NoSourceMap = 1536,
NoNestedSourceMaps = 2048,
NoTokenLeadingSourceMaps = 4096,
NoTokenTrailingSourceMaps = 8192,
NoTokenSourceMaps = 12288,
NoLeadingComments = 16384,
NoTrailingComments = 32768,
NoComments = 49152,
NoNestedComments = 65536,
ExportName = 131072,
LocalName = 262144,
Indented = 524288,
NoIndentation = 1048576,
AsyncFunctionBody = 2097152,
ReuseTempVariableScope = 4194304,
CustomPrologue = 8388608,
NoHoisting = 16777216,
HasEndOfDeclarationMarker = 33554432,
}
const enum EmitContext {
SourceFile = 0,
Expression = 1,
IdentifierName = 2,
Unspecified = 3,
}
interface LexicalEnvironment {
startLexicalEnvironment(): void;
endLexicalEnvironment(): Statement[];
}
interface TextSpan {
start: number;
length: number;
}
interface TextChangeRange {
span: TextSpan;
newLength: number;
}
interface DiagnosticCollection {
add(diagnostic: Diagnostic): void;
getGlobalDiagnostics(): Diagnostic[];
getDiagnostics(fileName?: string): Diagnostic[];
getModificationCount(): number;
reattachFileDiagnostics(newFile: SourceFile): void;
}
interface SyntaxList extends Node {
_children: Node[];
}
}
declare namespace ts {
const timestamp: () => number;
}
declare namespace ts.performance {
function mark(markName: string): void;
function measure(measureName: string, startMarkName?: string, endMarkName?: string): void;
function getCount(markName: string): number;
function getDuration(measureName: string): number;
function forEachMeasure(cb: (measureName: string, duration: number) => void): void;
function enable(): void;
function disable(): void;
}
declare namespace ts {
const enum Ternary {
False = 0,
Maybe = 1,
True = -1,
}
const collator: {
compare(a: string, b: string): number;
};
function createMap<T>(template?: MapLike<T>): Map<T>;
function createFileMap<T>(keyMapper?: (key: string) => string): FileMap<T>;
function toPath(fileName: string, basePath: string, getCanonicalFileName: (path: string) => string): Path;
const enum Comparison {
LessThan = -1,
EqualTo = 0,
GreaterThan = 1,
}
function forEach<T, U>(array: T[] | undefined, callback: (element: T, index: number) => U | undefined): U | undefined;
function zipWith<T, U>(arrayA: T[], arrayB: U[], callback: (a: T, b: U, index: number) => void): void;
function every<T>(array: T[], callback: (element: T, index: number) => boolean): boolean;
function find<T>(array: T[], predicate: (element: T, index: number) => boolean): T | undefined;
function findMap<T, U>(array: T[], callback: (element: T, index: number) => U | undefined): U;
function contains<T>(array: T[], value: T): boolean;
function indexOf<T>(array: T[], value: T): number;
function indexOfAnyCharCode(text: string, charCodes: number[], start?: number): number;
function countWhere<T>(array: T[], predicate: (x: T, i: number) => boolean): number;
function filter<T, U extends T>(array: T[], f: (x: T) => x is U): U[];
function filter<T>(array: T[], f: (x: T) => boolean): T[];
function removeWhere<T>(array: T[], f: (x: T) => boolean): boolean;
function filterMutate<T>(array: T[], f: (x: T) => boolean): void;
function map<T, U>(array: T[], f: (x: T, i: number) => U): U[];
function sameMap<T>(array: T[], f: (x: T, i: number) => T): T[];
function flatten<T>(array: (T | T[])[]): T[];
function flatMap<T, U>(array: T[], mapfn: (x: T, i: number) => U | U[]): U[];
function span<T>(array: T[], f: (x: T, i: number) => boolean): [T[], T[]];
function spanMap<T, K, U>(array: T[], keyfn: (x: T, i: number) => K, mapfn: (chunk: T[], key: K, start: number, end: number) => U): U[];
function mapObject<T, U>(object: MapLike<T>, f: (key: string, x: T) => [string, U]): MapLike<U>;
function some<T>(array: T[], predicate?: (value: T) => boolean): boolean;
function concatenate<T>(array1: T[], array2: T[]): T[];
function deduplicate<T>(array: T[], areEqual?: (a: T, b: T) => boolean): T[];
function arrayIsEqualTo<T>(array1: ReadonlyArray<T>, array2: ReadonlyArray<T>, equaler?: (a: T, b: T) => boolean): boolean;
function changesAffectModuleResolution(oldOptions: CompilerOptions, newOptions: CompilerOptions): boolean;
function compact<T>(array: T[]): T[];
function relativeComplement<T>(arrayA: T[] | undefined, arrayB: T[] | undefined, comparer?: (x: T, y: T) => Comparison, offsetA?: number, offsetB?: number): T[] | undefined;
function sum(array: any[], prop: string): number;
function append<T>(to: T[] | undefined, value: T | undefined): T[] | undefined;
function addRange<T>(to: T[] | undefined, from: T[] | undefined): T[] | undefined;
function rangeEquals<T>(array1: T[], array2: T[], pos: number, end: number): boolean;
function firstOrUndefined<T>(array: T[]): T;
function lastOrUndefined<T>(array: T[]): T;
function singleOrUndefined<T>(array: T[]): T;
function singleOrMany<T>(array: T[]): T | T[];
function replaceElement<T>(array: T[], index: number, value: T): T[];
function binarySearch<T>(array: T[], value: T, comparer?: (v1: T, v2: T) => number, offset?: number): number;
function reduceLeft<T, U>(array: T[], f: (memo: U, value: T, i: number) => U, initial: U, start?: number, count?: number): U;
function reduceLeft<T>(array: T[], f: (memo: T, value: T, i: number) => T): T;
function reduceRight<T, U>(array: T[], f: (memo: U, value: T, i: number) => U, initial: U, start?: number, count?: number): U;
function reduceRight<T>(array: T[], f: (memo: T, value: T, i: number) => T): T;
function hasProperty<T>(map: MapLike<T>, key: string): boolean;
function getProperty<T>(map: MapLike<T>, key: string): T | undefined;
function getOwnKeys<T>(map: MapLike<T>): string[];
function forEachProperty<T, U>(map: Map<T>, callback: (value: T, key: string) => U): U;
function someProperties<T>(map: Map<T>, predicate?: (value: T, key: string) => boolean): boolean;
function copyProperties<T>(source: Map<T>, target: MapLike<T>): void;
function assign<T1 extends MapLike<{}>, T2, T3>(t: T1, arg1: T2, arg2: T3): T1 & T2 & T3;
function assign<T1 extends MapLike<{}>, T2>(t: T1, arg1: T2): T1 & T2;
function assign<T1 extends MapLike<{}>>(t: T1, ...args: any[]): any;
function reduceProperties<T, U>(map: Map<T>, callback: (aggregate: U, value: T, key: string) => U, initial: U): U;
function reduceOwnProperties<T, U>(map: MapLike<T>, callback: (aggregate: U, value: T, key: string) => U, initial: U): U;
function equalOwnProperties<T>(left: MapLike<T>, right: MapLike<T>, equalityComparer?: (left: T, right: T) => boolean): boolean;
function arrayToMap<T>(array: T[], makeKey: (value: T) => string): Map<T>;
function arrayToMap<T, U>(array: T[], makeKey: (value: T) => string, makeValue: (value: T) => U): Map<U>;
function isEmpty<T>(map: Map<T>): boolean;
function cloneMap<T>(map: Map<T>): Map<T>;
function clone<T>(object: T): T;
function extend<T1, T2>(first: T1, second: T2): T1 & T2;
function multiMapAdd<V>(map: Map<V[]>, key: string | number, value: V): V[];
function multiMapRemove<V>(map: Map<V[]>, key: string, value: V): void;
function isArray(value: any): value is any[];
function noop(): void;
function notImplemented(): never;
function memoize<T>(callback: () => T): () => T;
function chain<T, U>(...args: ((t: T) => (u: U) => U)[]): (t: T) => (u: U) => U;
function compose<T>(...args: ((t: T) => T)[]): (t: T) => T;
let localizedDiagnosticMessages: Map<string>;
function getLocaleSpecificMessage(message: DiagnosticMessage): string;
function createFileDiagnostic(file: SourceFile, start: number, length: number, message: DiagnosticMessage, ...args: (string | number)[]): Diagnostic;
function formatMessage(_dummy: any, message: DiagnosticMessage): string;
function createCompilerDiagnostic(message: DiagnosticMessage, ...args: (string | number)[]): Diagnostic;
function createCompilerDiagnosticFromMessageChain(chain: DiagnosticMessageChain): Diagnostic;
function chainDiagnosticMessages(details: DiagnosticMessageChain, message: DiagnosticMessage, ...args: any[]): DiagnosticMessageChain;
function concatenateDiagnosticMessageChains(headChain: DiagnosticMessageChain, tailChain: DiagnosticMessageChain): DiagnosticMessageChain;
function compareValues<T>(a: T, b: T): Comparison;
function compareStrings(a: string, b: string, ignoreCase?: boolean): Comparison;
function compareStringsCaseInsensitive(a: string, b: string): Comparison;
function compareDiagnostics(d1: Diagnostic, d2: Diagnostic): Comparison;
function sortAndDeduplicateDiagnostics(diagnostics: Diagnostic[]): Diagnostic[];
function deduplicateSortedDiagnostics(diagnostics: Diagnostic[]): Diagnostic[];
function normalizeSlashes(path: string): string;
function getRootLength(path: string): number;
const directorySeparator = "/";
function normalizePath(path: string): string;
function pathEndsWithDirectorySeparator(path: string): boolean;
function getDirectoryPath(path: Path): Path;
function getDirectoryPath(path: string): string;
function isUrl(path: string): boolean;
function isExternalModuleNameRelative(moduleName: string): boolean;
function getEmitScriptTarget(compilerOptions: CompilerOptions): ScriptTarget;
function getEmitModuleKind(compilerOptions: CompilerOptions): ModuleKind;
function hasZeroOrOneAsteriskCharacter(str: string): boolean;
function isRootedDiskPath(path: string): boolean;
function convertToRelativePath(absoluteOrRelativePath: string, basePath: string, getCanonicalFileName: (path: string) => string): string;
function getNormalizedPathComponents(path: string, currentDirectory: string): string[];
function getNormalizedAbsolutePath(fileName: string, currentDirectory: string): string;
function getNormalizedPathFromPathComponents(pathComponents: string[]): string;
function getRelativePathToDirectoryOrUrl(directoryPathOrUrl: string, relativeOrAbsolutePath: string, currentDirectory: string, getCanonicalFileName: (fileName: string) => string, isAbsolutePathAnUrl: boolean): string;
function getBaseFileName(path: string): string;
function combinePaths(path1: string, path2: string): string;
function removeTrailingDirectorySeparator(path: string): string;
function ensureTrailingDirectorySeparator(path: string): string;
function comparePaths(a: string, b: string, currentDirectory: string, ignoreCase?: boolean): Comparison;
function containsPath(parent: string, child: string, currentDirectory: string, ignoreCase?: boolean): boolean;
function startsWith(str: string, prefix: string): boolean;
function endsWith(str: string, suffix: string): boolean;
function hasExtension(fileName: string): boolean;
function fileExtensionIs(path: string, extension: string): boolean;
function fileExtensionIsAny(path: string, extensions: string[]): boolean;
function getRegularExpressionForWildcard(specs: string[], basePath: string, usage: "files" | "directories" | "exclude"): string;
function isImplicitGlob(lastPathComponent: string): boolean;
interface FileSystemEntries {
files: string[];
directories: string[];
}
interface FileMatcherPatterns {
includeFilePattern: string;
includeDirectoryPattern: string;
excludePattern: string;
basePaths: string[];
}
function getFileMatcherPatterns(path: string, excludes: string[], includes: string[], useCaseSensitiveFileNames: boolean, currentDirectory: string): FileMatcherPatterns;
function matchFiles(path: string, extensions: string[], excludes: string[], includes: string[], useCaseSensitiveFileNames: boolean, currentDirectory: string, getFileSystemEntries: (path: string) => FileSystemEntries): string[];
function ensureScriptKind(fileName: string, scriptKind?: ScriptKind): ScriptKind;
function getScriptKindFromFileName(fileName: string): ScriptKind;
const supportedTypeScriptExtensions: string[];
const supportedTypescriptExtensionsForExtractExtension: string[];
const supportedJavascriptExtensions: string[];
function getSupportedExtensions(options?: CompilerOptions): string[];
function hasJavaScriptFileExtension(fileName: string): boolean;
function hasTypeScriptFileExtension(fileName: string): boolean;
function isSupportedSourceFileName(fileName: string, compilerOptions?: CompilerOptions): boolean;
const enum ExtensionPriority {
TypeScriptFiles = 0,
DeclarationAndJavaScriptFiles = 2,
Limit = 5,
Highest = 0,
Lowest = 2,
}
function getExtensionPriority(path: string, supportedExtensions: string[]): ExtensionPriority;
function adjustExtensionPriority(extensionPriority: ExtensionPriority): ExtensionPriority;
function getNextLowestExtensionPriority(extensionPriority: ExtensionPriority): ExtensionPriority;
function removeFileExtension(path: string): string;
function tryRemoveExtension(path: string, extension: string): string | undefined;
function removeExtension(path: string, extension: string): string;
function changeExtension<T extends string | Path>(path: T, newExtension: string): T;
interface ObjectAllocator {
getNodeConstructor(): new (kind: SyntaxKind, pos?: number, end?: number) => Node;
getTokenConstructor(): new <TKind extends SyntaxKind>(kind: TKind, pos?: number, end?: number) => Token<TKind>;
getIdentifierConstructor(): new (kind: SyntaxKind.Identifier, pos?: number, end?: number) => Identifier;
getSourceFileConstructor(): new (kind: SyntaxKind.SourceFile, pos?: number, end?: number) => SourceFile;
getSymbolConstructor(): new (flags: SymbolFlags, name: string) => Symbol;
getTypeConstructor(): new (checker: TypeChecker, flags: TypeFlags) => Type;
getSignatureConstructor(): new (checker: TypeChecker) => Signature;
}
let objectAllocator: ObjectAllocator;
const enum AssertionLevel {
None = 0,
Normal = 1,
Aggressive = 2,
VeryAggressive = 3,
}
namespace Debug {
let currentAssertionLevel: AssertionLevel;
function shouldAssert(level: AssertionLevel): boolean;
function assert(expression: boolean, message?: string, verboseDebugInfo?: () => string): void;
function fail(message?: string): void;
}
function orderedRemoveItemAt<T>(array: T[], index: number): void;
function unorderedRemoveItemAt<T>(array: T[], index: number): void;
function unorderedRemoveItem<T>(array: T[], item: T): void;
function createGetCanonicalFileName(useCaseSensitiveFileNames: boolean): (fileName: string) => string;
function matchPatternOrExact(patternStrings: string[], candidate: string): string | Pattern | undefined;
function patternText({prefix, suffix}: Pattern): string;
function matchedText(pattern: Pattern, candidate: string): string;
function findBestPatternMatch<T>(values: T[], getPattern: (value: T) => Pattern, candidate: string): T | undefined;
function tryParsePattern(pattern: string): Pattern | undefined;
function positionIsSynthesized(pos: number): boolean;
function extensionIsTypeScript(ext: Extension): boolean;
function extensionFromPath(path: string): Extension;
function tryGetExtensionFromPath(path: string): Extension | undefined;
}
declare namespace ts {
type FileWatcherCallback = (fileName: string, removed?: boolean) => void;
type DirectoryWatcherCallback = (fileName: string) => void;
interface WatchedFile {
fileName: string;
callback: FileWatcherCallback;
mtime?: Date;
}
interface System {
args: string[];
newLine: string;
useCaseSensitiveFileNames: boolean;
write(s: string): void;
readFile(path: string, encoding?: string): string;
getFileSize?(path: string): number;
writeFile(path: string, data: string, writeByteOrderMark?: boolean): void;
watchFile?(path: string, callback: FileWatcherCallback, pollingInterval?: number): FileWatcher;
watchDirectory?(path: string, callback: DirectoryWatcherCallback, recursive?: boolean): FileWatcher;
resolvePath(path: string): string;
fileExists(path: string): boolean;
directoryExists(path: string): boolean;
createDirectory(path: string): void;
getExecutingFilePath(): string;
getCurrentDirectory(): string;
getDirectories(path: string): string[];
readDirectory(path: string, extensions?: string[], exclude?: string[], include?: string[]): string[];
getModifiedTime?(path: string): Date;
createHash?(data: string): string;
getMemoryUsage?(): number;
exit(exitCode?: number): void;
realpath?(path: string): string;
getEnvironmentVariable(name: string): string;
tryEnableSourceMapsForHost?(): void;
setTimeout?(callback: (...args: any[]) => void, ms: number, ...args: any[]): any;
clearTimeout?(timeoutId: any): void;
}
interface FileWatcher {
close(): void;
}
interface DirectoryWatcher extends FileWatcher {
directoryName: string;
referenceCount: number;
}
let sys: System;
}
declare namespace ts {
const Diagnostics: {
Unterminated_string_literal: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Identifier_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_file_cannot_have_a_reference_to_itself: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Trailing_comma_not_allowed: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Asterisk_Slash_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unexpected_token: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_rest_parameter_must_be_last_in_a_parameter_list: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_cannot_have_question_mark_and_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_required_parameter_cannot_follow_an_optional_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_index_signature_cannot_have_a_rest_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_index_signature_parameter_cannot_have_an_accessibility_modifier: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_index_signature_parameter_cannot_have_a_question_mark: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_index_signature_parameter_cannot_have_an_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_index_signature_must_have_a_type_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_index_signature_parameter_must_have_a_type_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_index_signature_parameter_type_must_be_string_or_number: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Accessibility_modifier_already_seen: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_must_precede_1_modifier: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_already_seen: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_cannot_appear_on_a_class_element: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
super_must_be_followed_by_an_argument_list_or_member_access: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Only_ambient_modules_can_use_quoted_names: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Statements_are_not_allowed_in_ambient_contexts: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_declare_modifier_cannot_be_used_in_an_already_ambient_context: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Initializers_are_not_allowed_in_ambient_contexts: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_cannot_be_used_in_an_ambient_context: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_cannot_be_used_with_a_class_declaration: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_cannot_be_used_here: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_cannot_appear_on_a_data_property: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_cannot_appear_on_a_module_or_namespace_element: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_0_modifier_cannot_be_used_with_an_interface_declaration: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_rest_parameter_cannot_be_optional: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_rest_parameter_cannot_have_an_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_set_accessor_must_have_exactly_one_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_set_accessor_cannot_have_an_optional_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_set_accessor_parameter_cannot_have_an_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_set_accessor_cannot_have_rest_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_get_accessor_cannot_have_parameters: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_async_function_or_method_must_have_a_valid_awaitable_return_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Operand_for_await_does_not_have_a_valid_callable_then_member: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_expression_in_async_function_does_not_have_a_valid_callable_then_member: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Expression_body_for_async_arrow_function_does_not_have_a_valid_callable_then_member: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Enum_member_must_have_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_export_assignment_cannot_be_used_in_a_namespace: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
In_ambient_enum_declarations_member_initializer_must_be_constant_expression: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unexpected_token_A_constructor_method_accessor_or_property_was_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_cannot_appear_on_a_type_member: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_cannot_appear_on_an_index_signature: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_0_modifier_cannot_be_used_with_an_import_declaration: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Invalid_reference_directive_syntax: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_accessor_cannot_be_declared_in_an_ambient_context: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_cannot_appear_on_a_constructor_declaration: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_cannot_appear_on_a_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameters_cannot_appear_on_a_constructor_declaration: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_annotation_cannot_appear_on_a_constructor_declaration: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_accessor_cannot_have_type_parameters: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_set_accessor_cannot_have_a_return_type_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_index_signature_must_have_exactly_one_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_list_cannot_be_empty: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_list_cannot_be_empty: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_argument_list_cannot_be_empty: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Invalid_use_of_0_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
with_statements_are_not_allowed_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
delete_cannot_be_called_on_an_identifier_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Jump_target_cannot_cross_function_boundary: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_return_statement_can_only_be_used_within_a_function_body: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Expression_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Duplicate_label_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_object_literal_cannot_have_property_and_accessor_with_the_same_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_export_assignment_cannot_have_modifiers: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Octal_literals_are_not_allowed_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_tuple_type_element_list_cannot_be_empty: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Variable_declaration_list_cannot_be_empty: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Digit_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Hexadecimal_digit_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unexpected_end_of_text: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Invalid_character: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Declaration_or_statement_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Statement_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
case_or_default_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_or_signature_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Enum_member_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Variable_declaration_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Argument_expression_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_assignment_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Expression_or_comma_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_declaration_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_declaration_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_argument_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
String_literal_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Line_break_not_permitted_here: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
or_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Declaration_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Import_declarations_in_a_namespace_cannot_reference_a_module: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_use_imports_exports_or_module_augmentations_when_module_is_none: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_name_0_differs_from_already_included_file_name_1_only_in_casing: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
const_declarations_must_be_initialized: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
const_declarations_can_only_be_declared_inside_a_block: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
let_declarations_can_only_be_declared_inside_a_block: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unterminated_template_literal: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unterminated_regular_expression_literal: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_object_member_cannot_be_declared_optional: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_yield_expression_is_only_allowed_in_a_generator_body: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Computed_property_names_are_not_allowed_in_enums: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_comma_expression_is_not_allowed_in_a_computed_property_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
extends_clause_already_seen: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
extends_clause_must_precede_implements_clause: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Classes_can_only_extend_a_single_class: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
implements_clause_already_seen: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Interface_declaration_cannot_have_implements_clause: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Binary_digit_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Octal_digit_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unexpected_token_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_destructuring_pattern_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Array_element_destructuring_pattern_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_destructuring_declaration_must_have_an_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_implementation_cannot_be_declared_in_ambient_contexts: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Modifiers_cannot_appear_here: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Merge_conflict_marker_encountered: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_rest_element_cannot_have_an_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_parameter_property_may_not_be_declared_using_a_binding_pattern: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_import_declaration_cannot_have_modifiers: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_0_has_no_default_export: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_export_declaration_cannot_have_modifiers: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Export_declarations_are_not_permitted_in_a_namespace: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Catch_clause_variable_cannot_have_a_type_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Catch_clause_variable_cannot_have_an_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unterminated_Unicode_escape_sequence: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Line_terminator_not_permitted_before_arrow: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Import_assignment_cannot_be_used_when_targeting_ECMAScript_2015_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Export_assignment_cannot_be_used_when_targeting_ECMAScript_2015_modules_Consider_using_export_default_or_another_module_format_instead: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Decorators_are_not_valid_here: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_compile_namespaces_when_the_isolatedModules_flag_is_provided: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Ambient_const_enums_are_not_allowed_when_the_isolatedModules_flag_is_provided: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_class_declaration_without_the_default_modifier_must_have_a_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Identifier_expected_0_is_a_reserved_word_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Invalid_use_of_0_Modules_are_automatically_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Export_assignment_is_not_supported_when_module_flag_is_system: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_to_remove_this_warning: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Generators_are_only_available_when_targeting_ECMAScript_2015_or_higher: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Generators_are_not_allowed_in_an_ambient_context: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_overload_signature_cannot_be_declared_as_a_generator: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_tag_already_specified: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Signature_0_must_have_a_type_predicate: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_find_parameter_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_predicate_0_is_not_assignable_to_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_is_not_in_the_same_position_as_parameter_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_type_predicate_cannot_reference_a_rest_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_type_predicate_cannot_reference_element_0_in_a_binding_pattern: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_export_assignment_can_only_be_used_in_a_module: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_import_declaration_can_only_be_used_in_a_namespace_or_module: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_export_declaration_can_only_be_used_in_a_module: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_namespace_declaration_is_only_allowed_in_a_namespace_or_module: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_return_type_of_a_property_decorator_function_must_be_either_void_or_any: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_modifier_cannot_be_used_with_1_modifier: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Abstract_methods_can_only_appear_within_an_abstract_class: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Method_0_cannot_have_an_implementation_because_it_is_marked_abstract: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_interface_property_cannot_have_an_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_type_literal_property_cannot_have_an_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_class_member_cannot_have_the_0_keyword: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_decorator_can_only_decorate_a_method_implementation_not_an_overload: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_tag_cannot_be_used_independently_as_a_top_level_JSDoc_tag: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
with_statements_are_not_allowed_in_an_async_function_block: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
await_expression_is_only_allowed_within_an_async_function: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
can_only_be_used_in_an_object_literal_property_inside_a_destructuring_assignment: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_body_of_an_if_statement_cannot_be_the_empty_statement: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Global_module_exports_may_only_appear_in_module_files: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Global_module_exports_may_only_appear_in_declaration_files: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Global_module_exports_may_only_appear_at_top_level: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_parameter_property_cannot_be_declared_using_a_rest_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Duplicate_identifier_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Static_members_cannot_reference_class_type_parameters: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Circular_definition_of_import_alias_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_find_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_0_has_no_exported_member_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_0_is_not_a_module: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_find_module_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_recursively_references_itself_as_a_base_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_class_may_only_extend_another_class: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_interface_may_only_extend_a_class_or_another_interface: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_0_has_a_circular_constraint: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Generic_type_0_requires_1_type_argument_s: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_is_not_generic: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Global_type_0_must_be_a_class_or_interface_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Global_type_0_must_have_1_type_parameter_s: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_find_global_type_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Named_property_0_of_types_1_and_2_are_not_identical: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Interface_0_cannot_simultaneously_extend_types_1_and_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Excessive_stack_depth_comparing_types_0_and_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_is_not_assignable_to_type_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_redeclare_exported_variable_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_is_missing_in_type_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_is_private_in_type_1_but_not_in_type_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Types_of_property_0_are_incompatible: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_is_optional_in_type_1_but_required_in_type_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Types_of_parameters_0_and_1_are_incompatible: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Index_signature_is_missing_in_type_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Index_signatures_are_incompatible: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
this_cannot_be_referenced_in_a_module_or_namespace_body: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
this_cannot_be_referenced_in_current_location: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
this_cannot_be_referenced_in_constructor_arguments: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
this_cannot_be_referenced_in_a_static_property_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
super_can_only_be_referenced_in_a_derived_class: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
super_cannot_be_referenced_in_constructor_arguments: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_does_not_exist_on_type_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_is_private_and_only_accessible_within_class_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_index_expression_argument_must_be_of_type_string_number_symbol_or_any: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_does_not_satisfy_the_constraint_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Supplied_parameters_do_not_match_any_signature_of_call_target: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Untyped_function_calls_may_not_accept_type_arguments: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Only_a_void_function_can_be_called_with_the_new_keyword: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_cannot_be_converted_to_type_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Operator_0_cannot_be_applied_to_types_1_and_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_name_cannot_be_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_parameter_property_is_only_allowed_in_a_constructor_implementation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_rest_parameter_must_be_of_an_array_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_cannot_be_referenced_in_its_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Duplicate_string_index_signature: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Duplicate_number_index_signature: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Constructors_for_derived_classes_must_contain_a_super_call: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_get_accessor_must_return_a_value: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Getter_and_setter_accessors_do_not_agree_in_visibility: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
get_and_set_accessor_must_have_the_same_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_signature_with_an_implementation_cannot_use_a_string_literal_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Overload_signatures_must_all_be_exported_or_non_exported: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Overload_signatures_must_all_be_ambient_or_non_ambient: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Overload_signatures_must_all_be_public_private_or_protected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Overload_signatures_must_all_be_optional_or_required: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Function_overload_must_be_static: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Function_overload_must_not_be_static: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Function_implementation_name_must_be_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Constructor_implementation_is_missing: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Function_implementation_is_missing_or_not_immediately_following_the_declaration: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Multiple_constructor_implementations_are_not_allowed: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Duplicate_function_implementation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Overload_signature_is_not_compatible_with_function_implementation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Declaration_name_conflicts_with_built_in_global_identifier_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Setters_cannot_return_a_value: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_of_type_1_is_not_assignable_to_string_index_type_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Numeric_index_type_0_is_not_assignable_to_string_index_type_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Class_name_cannot_be_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Class_0_incorrectly_extends_base_class_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Class_static_side_0_incorrectly_extends_base_class_static_side_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Class_0_incorrectly_implements_interface_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_class_may_only_implement_another_class_or_interface: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Interface_name_cannot_be_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
All_declarations_of_0_must_have_identical_type_parameters: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Interface_0_incorrectly_extends_interface_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Enum_name_cannot_be_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Ambient_module_declaration_cannot_specify_relative_module_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_0_is_hidden_by_a_local_declaration_with_the_same_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Import_name_cannot_be_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Import_declaration_conflicts_with_local_declaration_of_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Types_have_separate_declarations_of_a_private_property_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_is_protected_in_type_1_but_public_in_type_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Block_scoped_variable_0_used_before_its_declaration: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_redeclare_block_scoped_variable_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_enum_member_cannot_have_a_numeric_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Variable_0_is_used_before_being_assigned: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_alias_0_circularly_references_itself: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_alias_name_cannot_be_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_AMD_module_cannot_have_multiple_name_assignments: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_has_no_property_1_and_no_string_index_signature: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_has_no_property_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_is_not_an_array_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_rest_element_must_be_last_in_a_destructuring_pattern: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_computed_property_name_must_be_of_type_string_number_symbol_or_any: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
this_cannot_be_referenced_in_a_computed_property_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
super_cannot_be_referenced_in_a_computed_property_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_find_global_value_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_0_operator_cannot_be_applied_to_type_symbol: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_computed_property_name_of_the_form_0_must_be_of_type_symbol: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Enum_declarations_must_all_be_const_or_non_const: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
In_const_enum_declarations_member_initializer_must_be_constant_expression: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_const_enum_member_can_only_be_accessed_using_a_string_literal: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
const_enum_member_initializer_was_evaluated_to_a_non_finite_value: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_does_not_exist_on_const_enum_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Export_declaration_conflicts_with_exported_declaration_of_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_must_have_a_Symbol_iterator_method_that_returns_an_iterator: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_iterator_must_have_a_next_method: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_redeclare_identifier_0_in_catch_clause: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_is_not_an_array_type_or_a_string_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_0_resolves_to_a_non_module_entity_and_cannot_be_imported_using_this_construct: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_0_uses_export_and_cannot_be_used_with_export_Asterisk: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_rest_element_cannot_contain_a_binding_pattern: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_find_namespace_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_generator_cannot_have_a_void_type_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_is_referenced_directly_or_indirectly_in_its_own_base_expression: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_is_not_a_constructor_function_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
No_base_constructor_has_the_specified_number_of_type_arguments: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Base_constructor_return_type_0_is_not_a_class_or_interface_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Base_constructors_must_all_have_the_same_return_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_create_an_instance_of_the_abstract_class_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Overload_signatures_must_all_be_abstract_or_non_abstract: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Classes_containing_abstract_methods_must_be_marked_abstract: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
All_declarations_of_an_abstract_method_must_be_consecutive: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
yield_expressions_cannot_be_used_in_a_parameter_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
await_expressions_cannot_be_used_in_a_parameter_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_inferred_type_of_0_references_an_inaccessible_this_type_A_type_annotation_is_necessary: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_module_cannot_have_multiple_default_exports: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_is_incompatible_with_index_signature: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Object_is_possibly_null: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Object_is_possibly_undefined: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Object_is_possibly_null_or_undefined: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_function_returning_never_cannot_have_a_reachable_end_point: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Enum_type_0_has_members_with_initializers_that_are_not_literals: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_is_not_constrained_to_keyof_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_has_no_matching_index_signature_for_type_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_cannot_be_used_as_an_index_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_assign_to_0_because_it_is_not_a_variable: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_target_of_an_assignment_must_be_a_variable_or_a_property_access: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Index_signature_in_type_0_only_permits_reading: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
JSX_element_attributes_type_0_may_not_be_a_union_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_return_type_of_a_JSX_element_constructor_must_return_an_object_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_in_type_1_is_not_assignable_to_type_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
JSX_element_type_0_does_not_have_any_construct_or_call_signatures: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_global_type_JSX_0_may_not_have_more_than_one_property: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_emit_namespaced_JSX_elements_in_React: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_the_package_definition: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
JSX_expressions_must_have_one_parent_element: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_provides_no_match_for_the_signature_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_find_name_0_Did_you_mean_the_static_member_1_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_find_name_0_Did_you_mean_the_instance_member_this_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Invalid_module_name_in_augmentation_module_0_cannot_be_found: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Exports_and_export_assignments_are_not_permitted_in_module_augmentations: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_assign_a_0_constructor_type_to_a_1_constructor_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_extend_a_class_0_Class_constructor_is_marked_as_private: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Accessors_must_both_be_abstract_or_non_abstract: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_is_not_comparable_to_type_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_this_parameter_must_be_the_first_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_constructor_cannot_have_a_this_parameter: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
get_and_set_accessor_must_have_the_same_this_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_this_types_of_each_signature_are_incompatible: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
All_declarations_of_0_must_have_identical_modifiers: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_find_type_definition_file_for_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_extend_an_interface_0_Did_you_mean_implements: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_class_must_be_declared_after_its_base_class: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_only_refers_to_a_type_but_is_being_used_as_a_value_here: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Namespace_0_has_no_exported_member_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Left_side_of_comma_operator_is_unused_and_has_no_side_effects: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Spread_types_may_only_be_created_from_object_types: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Rest_types_may_only_be_created_from_object_types: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_object_rest_element_must_be_an_identifier: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Import_declaration_0_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Exported_variable_0_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Exported_variable_0_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Public_property_0_of_exported_class_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_of_exported_interface_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Return_type_of_exported_function_has_or_is_using_private_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_of_exported_function_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Exported_type_alias_0_has_or_is_using_private_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Default_export_of_the_module_has_or_is_using_private_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_current_host_does_not_support_the_0_option: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_find_the_common_subdirectory_path_for_the_input_files: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_specification_cannot_contain_multiple_recursive_directory_wildcards_Asterisk_Asterisk_Colon_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_read_file_0_Colon_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unsupported_file_encoding: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Failed_to_parse_file_0_Colon_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unknown_compiler_option_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Compiler_option_0_requires_a_value_of_type_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Could_not_write_file_0_Colon_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Option_project_cannot_be_mixed_with_source_files_on_a_command_line: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Option_0_cannot_be_specified_without_specifying_option_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Option_0_cannot_be_specified_with_option_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_tsconfig_json_file_is_already_defined_at_Colon_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_write_file_0_because_it_would_overwrite_input_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_specified_path_does_not_exist_Colon_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Option_paths_cannot_be_used_without_specifying_baseUrl_option: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Pattern_0_can_have_at_most_one_Asterisk_character: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Substitution_0_in_pattern_1_in_can_have_at_most_one_Asterisk_character: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Substitutions_for_pattern_0_should_be_an_array: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Substitutions_for_pattern_0_shouldn_t_be_an_empty_array: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Concatenate_and_emit_output_to_single_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Generates_corresponding_d_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Watch_input_files: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Redirect_output_structure_to_the_directory: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Do_not_erase_const_enum_declarations_in_generated_code: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Do_not_emit_outputs_if_any_errors_were_reported: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Do_not_emit_comments_to_output: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Do_not_emit_outputs: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Skip_type_checking_of_declaration_files: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES2015: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specify_module_code_generation_Colon_commonjs_amd_system_umd_or_es2015: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Print_this_message: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Print_the_compiler_s_version: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Compile_the_project_in_the_given_directory: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Syntax_Colon_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
options: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Examples_Colon_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Options_Colon: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Version_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Insert_command_line_options_and_files_from_a_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_change_detected_Starting_incremental_compilation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
KIND: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
FILE: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
VERSION: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
LOCATION: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
DIRECTORY: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
STRATEGY: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Compilation_complete_Watching_for_file_changes: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Generates_corresponding_map_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Compiler_option_0_expects_an_argument: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unterminated_quoted_string_in_response_file_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Argument_for_0_option_must_be_Colon_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unsupported_locale_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unable_to_open_file_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Corrupted_locale_file_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Raise_error_on_expressions_and_declarations_with_an_implied_any_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_0_not_found: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_0_has_unsupported_extension_The_only_supported_extensions_are_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Do_not_emit_declarations_for_code_that_has_an_internal_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
NEWLINE: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Option_0_can_only_be_specified_in_tsconfig_json_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Enables_experimental_support_for_ES7_decorators: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Enables_experimental_support_for_emitting_type_metadata_for_decorators: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Enables_experimental_support_for_ES7_async_functions: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Successfully_created_a_tsconfig_json_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Suppress_excess_property_checks_for_object_literals: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Stylize_errors_and_messages_using_color_and_context_experimental: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Do_not_report_errors_on_unused_labels: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Report_error_when_not_all_code_paths_in_function_return_a_value: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Report_errors_for_fallthrough_cases_in_switch_statement: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Do_not_report_errors_on_unreachable_code: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Disallow_inconsistently_cased_references_to_the_same_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specify_library_files_to_be_included_in_the_compilation_Colon: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specify_JSX_code_generation_Colon_preserve_or_react: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Only_amd_and_system_modules_are_supported_alongside_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Base_directory_to_resolve_non_absolute_module_names: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specify_the_object_invoked_for_createElement_and_spread_when_targeting_react_JSX_emit: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Enable_tracing_of_the_name_resolution_process: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Resolving_module_0_from_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Explicitly_specified_module_resolution_kind_Colon_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_resolution_kind_is_not_specified_using_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_name_0_was_successfully_resolved_to_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_name_0_was_not_resolved: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_name_0_matched_pattern_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Trying_substitution_0_candidate_module_location_Colon_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Resolving_module_name_0_relative_to_base_url_1_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Loading_module_as_file_Slash_folder_candidate_module_location_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_0_does_not_exist: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_0_exist_use_it_as_a_name_resolution_result: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Loading_module_0_from_node_modules_folder: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Found_package_json_at_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
package_json_does_not_have_a_types_or_main_field: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
package_json_has_0_field_1_that_references_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Allow_javascript_files_to_be_compiled: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Option_0_should_have_array_of_strings_as_a_value: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Checking_if_0_is_the_longest_matching_prefix_for_1_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Expected_type_of_0_field_in_package_json_to_be_string_got_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Longest_matching_prefix_for_0_is_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Loading_0_from_the_root_dir_1_candidate_location_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Trying_other_entries_in_rootDirs: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_resolution_using_rootDirs_has_failed: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Do_not_emit_use_strict_directives_in_module_output: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Enable_strict_null_checks: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unknown_option_excludes_Did_you_mean_exclude: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Raise_error_on_this_expressions_with_an_implied_any_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Resolving_type_reference_directive_0_containing_file_1_root_directory_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Resolving_using_primary_search_paths: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Resolving_from_node_modules_folder: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_reference_directive_0_was_not_resolved: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Resolving_with_primary_search_path_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Root_directory_cannot_be_determined_skipping_primary_search_paths: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_declaration_files_to_be_included_in_compilation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Looking_up_in_node_modules_folder_initial_location_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_config_file_0_found_doesn_t_contain_any_source_files: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Resolving_real_path_for_0_result_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
File_name_0_has_a_1_extension_stripping_it: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_is_declared_but_never_used: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Report_errors_on_unused_locals: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Report_errors_on_unused_parameters: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
No_types_specified_in_package_json_so_returning_main_value_of_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_is_declared_but_never_used: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Import_emit_helpers_from_tslib: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parse_in_strict_mode_and_emit_use_strict_for_each_source_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_0_was_resolved_to_1_but_jsx_is_not_set: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_0_was_resolved_to_1_but_allowJs_is_not_set: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Variable_0_implicitly_has_an_1_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Parameter_0_implicitly_has_an_1_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Member_0_implicitly_has_an_1_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Object_literal_s_property_0_implicitly_has_an_1_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Rest_parameter_0_implicitly_has_an_any_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Generator_implicitly_has_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unreachable_code_detected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unused_label: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Fallthrough_case_in_switch: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Not_all_code_paths_return_a_value: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Binding_element_0_implicitly_has_an_1_type: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
You_cannot_rename_this_element: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
import_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
export_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
type_parameter_declarations_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
implements_clauses_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
interface_declarations_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
module_declarations_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
type_aliases_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
_0_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
types_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
type_arguments_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
parameter_modifiers_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
enum_declarations_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
type_assertion_expressions_can_only_be_used_in_a_ts_file: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_class_extends_clauses: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
class_expressions_are_not_currently_supported: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
JSX_attributes_must_only_be_assigned_a_non_empty_expression: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
JSX_elements_cannot_have_multiple_attributes_with_the_same_name: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Expected_corresponding_JSX_closing_tag_for_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
JSX_attribute_expected: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Cannot_use_JSX_unless_the_jsx_flag_is_provided: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_constructor_cannot_contain_a_super_call_when_its_class_extends_null: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
JSX_element_0_has_no_corresponding_closing_tag: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Unknown_typing_option_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Circularity_detected_while_resolving_configuration_Colon_0: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_path_in_an_extends_options_must_be_relative_or_rooted: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
The_files_list_in_config_file_0_is_empty: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Add_missing_super_call: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Make_super_call_the_first_statement_in_the_constructor: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Change_extends_to_implements: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Remove_unused_identifiers: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Implement_interface_on_reference: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Implement_interface_on_class: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Implement_inherited_abstract_class: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated: {
code: number;
category: DiagnosticCategory;
key: string;
message: string;
};
};
}
declare namespace ts {
interface ErrorCallback {
(message: DiagnosticMessage, length: number): void;
}
function tokenIsIdentifierOrKeyword(token: SyntaxKind): boolean;
interface Scanner {
getStartPos(): number;
getToken(): SyntaxKind;
getTextPos(): number;
getTokenPos(): number;
getTokenText(): string;
getTokenValue(): string;
hasExtendedUnicodeEscape(): boolean;
hasPrecedingLineBreak(): boolean;
isIdentifier(): boolean;
isReservedWord(): boolean;
isUnterminated(): boolean;
reScanGreaterToken(): SyntaxKind;
reScanSlashToken(): SyntaxKind;
reScanTemplateToken(): SyntaxKind;
scanJsxIdentifier(): SyntaxKind;
scanJsxAttributeValue(): SyntaxKind;
reScanJsxToken(): SyntaxKind;
scanJsxToken(): SyntaxKind;
scanJSDocToken(): SyntaxKind;
scan(): SyntaxKind;
getText(): string;
setText(text: string, start?: number, length?: number): void;
setOnError(onError: ErrorCallback): void;
setScriptTarget(scriptTarget: ScriptTarget): void;
setLanguageVariant(variant: LanguageVariant): void;
setTextPos(textPos: number): void;
lookAhead<T>(callback: () => T): T;
scanRange<T>(start: number, length: number, callback: () => T): T;
tryScan<T>(callback: () => T): T;
}
function isUnicodeIdentifierStart(code: number, languageVersion: ScriptTarget): boolean;
function tokenToString(t: SyntaxKind): string;
function stringToToken(s: string): SyntaxKind;
function computeLineStarts(text: string): number[];
function getPositionOfLineAndCharacter(sourceFile: SourceFile, line: number, character: number): number;
function computePositionOfLineAndCharacter(lineStarts: number[], line: number, character: number): number;
function getLineStarts(sourceFile: SourceFile): number[];
function computeLineAndCharacterOfPosition(lineStarts: number[], position: number): {
line: number;
character: number;
};
function getLineAndCharacterOfPosition(sourceFile: SourceFile, position: number): LineAndCharacter;
function isWhiteSpace(ch: number): boolean;
function isWhiteSpaceSingleLine(ch: number): boolean;
function isLineBreak(ch: number): boolean;
function isOctalDigit(ch: number): boolean;
function couldStartTrivia(text: string, pos: number): boolean;
function skipTrivia(text: string, pos: number, stopAfterLineBreak?: boolean, stopAtComments?: boolean): number;
function forEachLeadingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: SyntaxKind, hasTrailingNewLine: boolean, state: T) => U, state?: T): U;
function forEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: SyntaxKind, hasTrailingNewLine: boolean, state: T) => U, state?: T): U;
function reduceEachLeadingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: SyntaxKind, hasTrailingNewLine: boolean, state: T, memo: U) => U, state: T, initial: U): U;
function reduceEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: SyntaxKind, hasTrailingNewLine: boolean, state: T, memo: U) => U, state: T, initial: U): U;
function getLeadingCommentRanges(text: string, pos: number): CommentRange[];
function getTrailingCommentRanges(text: string, pos: number): CommentRange[];
function getShebang(text: string): string;
function isIdentifierStart(ch: number, languageVersion: ScriptTarget): boolean;
function isIdentifierPart(ch: number, languageVersion: ScriptTarget): boolean;
function isIdentifierText(name: string, languageVersion: ScriptTarget): boolean;
function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, languageVariant?: LanguageVariant, text?: string, onError?: ErrorCallback, start?: number, length?: number): Scanner;
}
declare namespace ts {
const compileOnSaveCommandLineOption: CommandLineOption;
const optionDeclarations: CommandLineOption[];
let typingOptionDeclarations: CommandLineOption[];
interface OptionNameMap {
optionNameMap: Map<CommandLineOption>;
shortOptionNames: Map<string>;
}
const defaultInitCompilerOptions: CompilerOptions;
function getOptionNameMap(): OptionNameMap;
function createCompilerDiagnosticForInvalidCustomType(opt: CommandLineOptionOfCustomType): Diagnostic;
function parseCustomTypeOption(opt: CommandLineOptionOfCustomType, value: string, errors: Diagnostic[]): string | number;
function parseListTypeOption(opt: CommandLineOptionOfListType, value: string, errors: Diagnostic[]): (string | number)[] | undefined;
function parseCommandLine(commandLine: string[], readFile?: (path: string) => string): ParsedCommandLine;
function readConfigFile(fileName: string, readFile: (path: string) => string): {
config?: any;
error?: Diagnostic;
};
function parseConfigFileTextToJson(fileName: string, jsonText: string, stripComments?: boolean): {
config?: any;
error?: Diagnostic;
};
function generateTSConfig(options: CompilerOptions, fileNames: string[]): {
compilerOptions: Map<CompilerOptionsValue>;
};
function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[]): ParsedCommandLine;
function convertCompileOnSaveOptionFromJson(jsonOption: any, basePath: string, errors: Diagnostic[]): boolean;
function convertCompilerOptionsFromJson(jsonOptions: any, basePath: string, configFileName?: string): {
options: CompilerOptions;
errors: Diagnostic[];
};
function convertTypingOptionsFromJson(jsonOptions: any, basePath: string, configFileName?: string): {
options: TypingOptions;
errors: Diagnostic[];
};
}
declare namespace ts.JsTyping {
interface TypingResolutionHost {
directoryExists: (path: string) => boolean;
fileExists: (fileName: string) => boolean;
readFile: (path: string, encoding?: string) => string;
readDirectory: (rootDir: string, extensions: string[], excludes: string[], includes: string[], depth?: number) => string[];
}
const nodeCoreModuleList: ReadonlyArray<string>;
function discoverTypings(host: TypingResolutionHost, fileNames: string[], projectRootPath: Path, safeListPath: Path, packageNameToTypingLocation: Map<string>, typingOptions: TypingOptions, unresolvedImports: ReadonlyArray<string>): {
cachedTypingPaths: string[];
newTypingNames: string[];
filesToWatch: string[];
};
}
declare namespace ts.server {
const ActionSet: ActionSet;
const ActionInvalidate: ActionInvalidate;
const EventInstall: EventInstall;
namespace Arguments {
const GlobalCacheLocation = "--globalTypingsCacheLocation";
const LogFile = "--logFile";
const EnableTelemetry = "--enableTelemetry";
}
function hasArgument(argumentName: string): boolean;
function findArgument(argumentName: string): string;
}
declare namespace ts.server {
enum LogLevel {
terse = 0,
normal = 1,
requestTime = 2,
verbose = 3,
}
const emptyArray: ReadonlyArray<any>;
interface Logger {
close(): void;
hasLevel(level: LogLevel): boolean;
loggingEnabled(): boolean;
perftrc(s: string): void;
info(s: string): void;
startGroup(): void;
endGroup(): void;
msg(s: string, type?: Msg.Types): void;
getLogFileName(): string;
}
namespace Msg {
type Err = "Err";
const Err: Err;
type Info = "Info";
const Info: Info;
type Perf = "Perf";
const Perf: Perf;
type Types = Err | Info | Perf;
}
function createInstallTypingsRequest(project: Project, typingOptions: TypingOptions, unresolvedImports: SortedReadonlyArray<string>, cachePath?: string): DiscoverTypings;
namespace Errors {
function ThrowNoProject(): never;
function ThrowProjectLanguageServiceDisabled(): never;
function ThrowProjectDoesNotContainDocument(fileName: string, project: Project): never;
}
function getDefaultFormatCodeSettings(host: ServerHost): FormatCodeSettings;
function mergeMaps(target: MapLike<any>, source: MapLike<any>): void;
function removeItemFromSet<T>(items: T[], itemToRemove: T): void;
type NormalizedPath = string & {
__normalizedPathTag: any;
};
function toNormalizedPath(fileName: string): NormalizedPath;
function normalizedPathToPath(normalizedPath: NormalizedPath, currentDirectory: string, getCanonicalFileName: (f: string) => string): Path;
function asNormalizedPath(fileName: string): NormalizedPath;
interface NormalizedPathMap<T> {
get(path: NormalizedPath): T;
set(path: NormalizedPath, value: T): void;
contains(path: NormalizedPath): boolean;
remove(path: NormalizedPath): void;
}
function createNormalizedPathMap<T>(): NormalizedPathMap<T>;
const nullLanguageService: LanguageService;
interface ServerLanguageServiceHost {
setCompilationSettings(options: CompilerOptions): void;
notifyFileRemoved(info: ScriptInfo): void;
startRecordingFilesWithChangedResolutions(): void;
finishRecordingFilesWithChangedResolutions(): Path[];
}
const nullLanguageServiceHost: ServerLanguageServiceHost;
interface ProjectOptions {
configHasFilesProperty?: boolean;
files?: string[];
wildcardDirectories?: Map<WatchDirectoryFlags>;
compilerOptions?: CompilerOptions;
typingOptions?: TypingOptions;
compileOnSave?: boolean;
}
function isInferredProjectName(name: string): boolean;
function makeInferredProjectName(counter: number): string;
function toSortedReadonlyArray(arr: string[]): SortedReadonlyArray<string>;
class ThrottledOperations {
private readonly host;
private pendingTimeouts;
constructor(host: ServerHost);
schedule(operationId: string, delay: number, cb: () => void): void;
private static run(self, operationId, cb);
}
class GcTimer {
private readonly host;
private readonly delay;
private readonly logger;
private timerId;
constructor(host: ServerHost, delay: number, logger: Logger);
scheduleCollect(): void;
private static run(self);
}
}
declare namespace ts {
function trace(host: ModuleResolutionHost, message: DiagnosticMessage, ...args: any[]): void;
function isTraceEnabled(compilerOptions: CompilerOptions, host: ModuleResolutionHost): boolean;
function getEffectiveTypeRoots(options: CompilerOptions, host: {
directoryExists?: (directoryName: string) => boolean;
getCurrentDirectory?: () => string;
}): string[] | undefined;
function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost): ResolvedTypeReferenceDirectiveWithFailedLookupLocations;
function getAutomaticTypeDirectiveNames(options: CompilerOptions, host: ModuleResolutionHost): string[];
function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
function directoryProbablyExists(directoryName: string, host: {
directoryExists?: (directoryName: string) => boolean;
}): boolean;
function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
function loadModuleFromGlobalCache(moduleName: string, projectName: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, globalCache: string): ResolvedModuleWithFailedLookupLocations;
}
declare namespace ts {
const externalHelpersModuleNameText = "tslib";
interface ReferencePathMatchResult {
fileReference?: FileReference;
diagnosticMessage?: DiagnosticMessage;
isNoDefaultLib?: boolean;
isTypeReferenceDirective?: boolean;
}
function getDeclarationOfKind(symbol: Symbol, kind: SyntaxKind): Declaration;
interface StringSymbolWriter extends SymbolWriter {
string(): string;
}
interface EmitHost extends ScriptReferenceHost {
getSourceFiles(): SourceFile[];
isSourceFileFromExternalLibrary(file: SourceFile): boolean;
getCommonSourceDirectory(): string;
getCanonicalFileName(fileName: string): string;
getNewLine(): string;
isEmitBlocked(emitFileName: string): boolean;
writeFile: WriteFileCallback;
}
function getSingleLineStringWriter(): StringSymbolWriter;
function releaseStringWriter(writer: StringSymbolWriter): void;
function getFullWidth(node: Node): number;
function hasResolvedModule(sourceFile: SourceFile, moduleNameText: string): boolean;
function getResolvedModule(sourceFile: SourceFile, moduleNameText: string): ResolvedModuleFull;
function setResolvedModule(sourceFile: SourceFile, moduleNameText: string, resolvedModule: ResolvedModuleFull): void;
function setResolvedTypeReferenceDirective(sourceFile: SourceFile, typeReferenceDirectiveName: string, resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective): void;
function moduleResolutionIsEqualTo(oldResolution: ResolvedModuleFull, newResolution: ResolvedModuleFull): boolean;
function typeDirectiveIsEqualTo(oldResolution: ResolvedTypeReferenceDirective, newResolution: ResolvedTypeReferenceDirective): boolean;
function hasChangesInResolutions<T>(names: string[], newResolutions: T[], oldResolutions: Map<T>, comparer: (oldResolution: T, newResolution: T) => boolean): boolean;
function containsParseError(node: Node): boolean;
function getSourceFileOfNode(node: Node): SourceFile;
function isStatementWithLocals(node: Node): boolean;
function getStartPositionOfLine(line: number, sourceFile: SourceFile): number;
function nodePosToString(node: Node): string;
function getStartPosOfNode(node: Node): number;
function isDefined(value: any): boolean;
function getEndLinePosition(line: number, sourceFile: SourceFile): number;
function nodeIsMissing(node: Node): boolean;
function nodeIsPresent(node: Node): boolean;
function getTokenPosOfNode(node: Node, sourceFile?: SourceFile, includeJsDocComment?: boolean): number;
function isJSDocNode(node: Node): boolean;
function isJSDocTag(node: Node): boolean;
function getNonDecoratorTokenPosOfNode(node: Node, sourceFile?: SourceFile): number;
function getSourceTextOfNodeFromSourceFile(sourceFile: SourceFile, node: Node, includeTrivia?: boolean): string;
function getTextOfNodeFromSourceText(sourceText: string, node: Node): string;
function getTextOfNode(node: Node, includeTrivia?: boolean): string;
function getLiteralText(node: LiteralLikeNode, sourceFile: SourceFile, languageVersion: ScriptTarget): string;
function isBinaryOrOctalIntegerLiteral(node: LiteralLikeNode, text: string): boolean;
function escapeIdentifier(identifier: string): string;
function unescapeIdentifier(identifier: string): string;
function makeIdentifierFromModuleName(moduleName: string): string;
function isBlockOrCatchScoped(declaration: Declaration): boolean;
function isCatchClauseVariableDeclarationOrBindingElement(declaration: Declaration): boolean;
function isAmbientModule(node: Node): boolean;
function isShorthandAmbientModuleSymbol(moduleSymbol: Symbol): boolean;
function isBlockScopedContainerTopLevel(node: Node): boolean;
function isGlobalScopeAugmentation(module: ModuleDeclaration): boolean;
function isExternalModuleAugmentation(node: Node): boolean;
function isBlockScope(node: Node, parentNode: Node): boolean;
function getEnclosingBlockScopeContainer(node: Node): Node;
function declarationNameToString(name: DeclarationName): string;
function getTextOfPropertyName(name: PropertyName): string;
function entityNameToString(name: EntityNameOrEntityNameExpression): string;
function createDiagnosticForNode(node: Node, message: DiagnosticMessage, arg0?: string | number, arg1?: string | number, arg2?: string | number): Diagnostic;
function createDiagnosticForNodeInSourceFile(sourceFile: SourceFile, node: Node, message: DiagnosticMessage, arg0?: string | number, arg1?: string | number, arg2?: string | number): Diagnostic;
function createDiagnosticForNodeFromMessageChain(node: Node, messageChain: DiagnosticMessageChain): Diagnostic;
function getSpanOfTokenAtPosition(sourceFile: SourceFile, pos: number): TextSpan;
function getErrorSpanForNode(sourceFile: SourceFile, node: Node): TextSpan;
function isExternalOrCommonJsModule(file: SourceFile): boolean;
function isDeclarationFile(file: SourceFile): boolean;
function isConstEnumDeclaration(node: Node): boolean;
function isConst(node: Node): boolean;
function isLet(node: Node): boolean;
function isSuperCall(n: Node): n is SuperCall;
function isPrologueDirective(node: Node): boolean;
function getLeadingCommentRangesOfNode(node: Node, sourceFileOfNode: SourceFile): CommentRange[];
function getLeadingCommentRangesOfNodeFromText(node: Node, text: string): CommentRange[];
function getJsDocComments(node: Node, sourceFileOfNode: SourceFile): CommentRange[];
function getJsDocCommentsFromText(node: Node, text: string): CommentRange[];
let fullTripleSlashReferencePathRegEx: RegExp;
let fullTripleSlashReferenceTypeReferenceDirectiveRegEx: RegExp;
let fullTripleSlashAMDReferencePathRegEx: RegExp;
function isPartOfTypeNode(node: Node): boolean;
function forEachReturnStatement<T>(body: Block, visitor: (stmt: ReturnStatement) => T): T;
function forEachYieldExpression(body: Block, visitor: (expr: YieldExpression) => void): void;
function isVariableLike(node: Node): node is VariableLikeDeclaration;
function isAccessor(node: Node): node is AccessorDeclaration;
function isClassLike(node: Node): node is ClassLikeDeclaration;
function isFunctionLike(node: Node): node is FunctionLikeDeclaration;
function isFunctionLikeKind(kind: SyntaxKind): boolean;
function introducesArgumentsExoticObject(node: Node): boolean;
function isIterationStatement(node: Node, lookInLabeledStatements: boolean): node is IterationStatement;
function isFunctionBlock(node: Node): boolean;
function isObjectLiteralMethod(node: Node): node is MethodDeclaration;
function isObjectLiteralOrClassExpressionMethod(node: Node): node is MethodDeclaration;
function isIdentifierTypePredicate(predicate: TypePredicate): predicate is IdentifierTypePredicate;
function isThisTypePredicate(predicate: TypePredicate): predicate is ThisTypePredicate;
function getContainingFunction(node: Node): FunctionLikeDeclaration;
function getContainingClass(node: Node): ClassLikeDeclaration;
function getThisContainer(node: Node, includeArrowFunctions: boolean): Node;
function getSuperContainer(node: Node, stopOnFunctions: boolean): Node;
function getImmediatelyInvokedFunctionExpression(func: Node): CallExpression;
function isSuperProperty(node: Node): node is SuperProperty;
function getEntityNameFromTypeNode(node: TypeNode): EntityNameOrEntityNameExpression;
function isCallLikeExpression(node: Node): node is CallLikeExpression;
function getInvokedExpression(node: CallLikeExpression): Expression;
function nodeCanBeDecorated(node: Node): boolean;
function nodeIsDecorated(node: Node): boolean;
function nodeOrChildIsDecorated(node: Node): boolean;
function childIsDecorated(node: Node): boolean;
function isJSXTagName(node: Node): boolean;
function isPartOfExpression(node: Node): boolean;
function isInstantiatedModule(node: ModuleDeclaration, preserveConstEnums: boolean): boolean;
function isExternalModuleImportEqualsDeclaration(node: Node): boolean;
function getExternalModuleImportEqualsDeclarationExpression(node: Node): Expression;
function isInternalModuleImportEqualsDeclaration(node: Node): node is ImportEqualsDeclaration;
function isSourceFileJavaScript(file: SourceFile): boolean;
function isInJavaScriptFile(node: Node): boolean;
function isRequireCall(expression: Node, checkArgumentIsStringLiteral: boolean): expression is CallExpression;
function isSingleOrDoubleQuote(charCode: number): boolean;
function isDeclarationOfFunctionExpression(s: Symbol): boolean;
function getSpecialPropertyAssignmentKind(expression: Node): SpecialPropertyAssignmentKind;
function getExternalModuleName(node: Node): Expression;
function getNamespaceDeclarationNode(node: ImportDeclaration | ImportEqualsDeclaration | ExportDeclaration): ImportEqualsDeclaration | NamespaceImport;
function isDefaultImport(node: ImportDeclaration | ImportEqualsDeclaration | ExportDeclaration): boolean;
function hasQuestionToken(node: Node): boolean;
function isJSDocConstructSignature(node: Node): boolean;
function getJSDocComments(node: Node, checkParentVariableStatement: boolean): string[];
function getJSDocTypeTag(node: Node): JSDocTypeTag;
function getJSDocReturnTag(node: Node): JSDocReturnTag;
function getJSDocTemplateTag(node: Node): JSDocTemplateTag;
function getCorrespondingJSDocParameterTag(parameter: ParameterDeclaration): JSDocParameterTag;
function hasRestParameter(s: SignatureDeclaration): boolean;
function hasDeclaredRestParameter(s: SignatureDeclaration): boolean;
function isRestParameter(node: ParameterDeclaration): boolean;
function isDeclaredRestParam(node: ParameterDeclaration): boolean;
const enum AssignmentKind {
None = 0,
Definite = 1,
Compound = 2,
}
function getAssignmentTargetKind(node: Node): AssignmentKind;
function isAssignmentTarget(node: Node): boolean;
function isNodeDescendantOf(node: Node, ancestor: Node): boolean;
function isInAmbientContext(node: Node): boolean;
function isDeclarationName(name: Node): boolean;
function isLiteralComputedPropertyDeclarationName(node: Node): boolean;
function isIdentifierName(node: Identifier): boolean;
function isAliasSymbolDeclaration(node: Node): boolean;
function exportAssignmentIsAlias(node: ExportAssignment): boolean;
function getClassExtendsHeritageClauseElement(node: ClassLikeDeclaration | InterfaceDeclaration): ExpressionWithTypeArguments;
function getClassImplementsHeritageClauseElements(node: ClassLikeDeclaration): NodeArray<ExpressionWithTypeArguments>;
function getInterfaceBaseTypeNodes(node: InterfaceDeclaration): NodeArray<ExpressionWithTypeArguments>;
function getHeritageClause(clauses: NodeArray<HeritageClause>, kind: SyntaxKind): HeritageClause;
function tryResolveScriptReference(host: ScriptReferenceHost, sourceFile: SourceFile, reference: FileReference): SourceFile;
function getAncestor(node: Node, kind: SyntaxKind): Node;
function getFileReferenceFromReferencePath(comment: string, commentRange: CommentRange): ReferencePathMatchResult;
function isKeyword(token: SyntaxKind): boolean;
function isTrivia(token: SyntaxKind): boolean;
function isAsyncFunctionLike(node: Node): boolean;
function isStringOrNumericLiteral(kind: SyntaxKind): boolean;
function hasDynamicName(declaration: Declaration): boolean;
function isDynamicName(name: DeclarationName): boolean;
function isWellKnownSymbolSyntactically(node: Expression): boolean;
function getPropertyNameForPropertyNameNode(name: DeclarationName): string;
function getPropertyNameForKnownSymbolName(symbolName: string): string;
function isESSymbolIdentifier(node: Node): boolean;
function isPushOrUnshiftIdentifier(node: Identifier): boolean;
function isModifierKind(token: SyntaxKind): boolean;
function isParameterDeclaration(node: VariableLikeDeclaration): boolean;
function getRootDeclaration(node: Node): Node;
function nodeStartsNewLexicalEnvironment(node: Node): boolean;
function nodeIsSynthesized(node: TextRange): boolean;
function getOriginalNode(node: Node): Node;
function getOriginalNode<T extends Node>(node: Node, nodeTest: (node: Node) => node is T): T;
function isParseTreeNode(node: Node): boolean;
function getParseTreeNode(node: Node): Node;
function getParseTreeNode<T extends Node>(node: Node, nodeTest?: (node: Node) => node is T): T;
function getOriginalSourceFiles(sourceFiles: SourceFile[]): SourceFile[];
function getOriginalNodeId(node: Node): number;
const enum Associativity {
Left = 0,
Right = 1,
}
function getExpressionAssociativity(expression: Expression): Associativity;
function getOperatorAssociativity(kind: SyntaxKind, operator: SyntaxKind, hasArguments?: boolean): Associativity;
function getExpressionPrecedence(expression: Expression): 0 | 1 | -1 | 2 | 4 | 3 | 16 | 10 | 5 | 6 | 11 | 8 | 19 | 18 | 17 | 15 | 14 | 13 | 12 | 9 | 7;
function getOperator(expression: Expression): SyntaxKind.Unknown | SyntaxKind.EndOfFileToken | SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia | SyntaxKind.NewLineTrivia | SyntaxKind.WhitespaceTrivia | SyntaxKind.ShebangTrivia | SyntaxKind.ConflictMarkerTrivia | SyntaxKind.NumericLiteral | SyntaxKind.StringLiteral | SyntaxKind.JsxText | SyntaxKind.RegularExpressionLiteral | SyntaxKind.NoSubstitutionTemplateLiteral | SyntaxKind.TemplateHead | SyntaxKind.TemplateMiddle | SyntaxKind.TemplateTail | SyntaxKind.OpenBraceToken | SyntaxKind.CloseBraceToken | SyntaxKind.OpenParenToken | SyntaxKind.CloseParenToken | SyntaxKind.OpenBracketToken | SyntaxKind.CloseBracketToken | SyntaxKind.DotToken | SyntaxKind.DotDotDotToken | SyntaxKind.SemicolonToken | SyntaxKind.CommaToken | SyntaxKind.LessThanToken | SyntaxKind.LessThanSlashToken | SyntaxKind.GreaterThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.EqualsEqualsToken | SyntaxKind.ExclamationEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.EqualsGreaterThanToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.AsteriskToken | SyntaxKind.AsteriskAsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken | SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken | SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken | SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken | SyntaxKind.ExclamationToken | SyntaxKind.TildeToken | SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken | SyntaxKind.QuestionToken | SyntaxKind.ColonToken | SyntaxKind.AtToken | SyntaxKind.EqualsToken | SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken | SyntaxKind.Identifier | SyntaxKind.BreakKeyword | SyntaxKind.CaseKeyword | SyntaxKind.CatchKeyword | SyntaxKind.ClassKeyword | SyntaxKind.ConstKeyword | SyntaxKind.ContinueKeyword | SyntaxKind.DebuggerKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.DeleteKeyword | SyntaxKind.DoKeyword | SyntaxKind.ElseKeyword | SyntaxKind.EnumKeyword | SyntaxKind.ExportKeyword | SyntaxKind.ExtendsKeyword | SyntaxKind.FalseKeyword | SyntaxKind.FinallyKeyword | SyntaxKind.ForKeyword | SyntaxKind.FunctionKeyword | SyntaxKind.IfKeyword | SyntaxKind.ImportKeyword | SyntaxKind.InKeyword | SyntaxKind.InstanceOfKeyword | SyntaxKind.NewKeyword | SyntaxKind.NullKeyword | SyntaxKind.ReturnKeyword | SyntaxKind.SuperKeyword | SyntaxKind.SwitchKeyword | SyntaxKind.ThisKeyword | SyntaxKind.ThrowKeyword | SyntaxKind.TrueKeyword | SyntaxKind.TryKeyword | SyntaxKind.TypeOfKeyword | SyntaxKind.VarKeyword | SyntaxKind.VoidKeyword | SyntaxKind.WhileKeyword | SyntaxKind.WithKeyword | SyntaxKind.ImplementsKeyword | SyntaxKind.InterfaceKeyword | SyntaxKind.LetKeyword | SyntaxKind.PackageKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.StaticKeyword | SyntaxKind.YieldKeyword | SyntaxKind.AbstractKeyword | SyntaxKind.AsKeyword | SyntaxKind.AnyKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.AwaitKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.ConstructorKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.GetKeyword | SyntaxKind.IsKeyword | SyntaxKind.KeyOfKeyword | SyntaxKind.ModuleKeyword | SyntaxKind.NamespaceKeyword | SyntaxKind.NeverKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.RequireKeyword | SyntaxKind.NumberKeyword | SyntaxKind.SetKeyword | SyntaxKind.StringKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.TypeKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.FromKeyword | SyntaxKind.GlobalKeyword | SyntaxKind.OfKeyword | SyntaxKind.QualifiedName | SyntaxKind.ComputedPropertyName | SyntaxKind.TypeParameter | SyntaxKind.Parameter | SyntaxKind.Decorator | SyntaxKind.PropertySignature | SyntaxKind.PropertyDeclaration | SyntaxKind.MethodSignature | SyntaxKind.MethodDeclaration | SyntaxKind.Constructor | SyntaxKind.GetAccessor | SyntaxKind.SetAccessor | SyntaxKind.CallSignature | SyntaxKind.ConstructSignature | SyntaxKind.IndexSignature | SyntaxKind.TypePredicate | SyntaxKind.TypeReference | SyntaxKind.FunctionType | SyntaxKind.ConstructorType | SyntaxKind.TypeQuery | SyntaxKind.TypeLiteral | SyntaxKind.ArrayType | SyntaxKind.TupleType | SyntaxKind.UnionType | SyntaxKind.IntersectionType | SyntaxKind.ParenthesizedType | SyntaxKind.ThisType | SyntaxKind.TypeOperator | SyntaxKind.IndexedAccessType | SyntaxKind.MappedType | SyntaxKind.LiteralType | SyntaxKind.ObjectBindingPattern | SyntaxKind.ArrayBindingPattern | SyntaxKind.BindingElement | SyntaxKind.ArrayLiteralExpression | SyntaxKind.ObjectLiteralExpression | SyntaxKind.PropertyAccessExpression | SyntaxKind.ElementAccessExpression | SyntaxKind.CallExpression | SyntaxKind.NewExpression | SyntaxKind.TaggedTemplateExpression | SyntaxKind.TypeAssertionExpression | SyntaxKind.ParenthesizedExpression | SyntaxKind.FunctionExpression | SyntaxKind.ArrowFunction | SyntaxKind.DeleteExpression | SyntaxKind.TypeOfExpression | SyntaxKind.VoidExpression | SyntaxKind.AwaitExpression | SyntaxKind.ConditionalExpression | SyntaxKind.TemplateExpression | SyntaxKind.YieldExpression | SyntaxKind.SpreadElement | SyntaxKind.ClassExpression | SyntaxKind.OmittedExpression | SyntaxKind.ExpressionWithTypeArguments | SyntaxKind.AsExpression | SyntaxKind.NonNullExpression | SyntaxKind.TemplateSpan | SyntaxKind.SemicolonClassElement | SyntaxKind.Block | SyntaxKind.VariableStatement | SyntaxKind.EmptyStatement | SyntaxKind.ExpressionStatement | SyntaxKind.IfStatement | SyntaxKind.DoStatement | SyntaxKind.WhileStatement | SyntaxKind.ForStatement | SyntaxKind.ForInStatement | SyntaxKind.ForOfStatement | SyntaxKind.ContinueStatement | SyntaxKind.BreakStatement | SyntaxKind.ReturnStatement | SyntaxKind.WithStatement | SyntaxKind.SwitchStatement | SyntaxKind.LabeledStatement | SyntaxKind.ThrowStatement | SyntaxKind.TryStatement | SyntaxKind.DebuggerStatement | SyntaxKind.VariableDeclaration | SyntaxKind.VariableDeclarationList | SyntaxKind.FunctionDeclaration | SyntaxKind.ClassDeclaration | SyntaxKind.InterfaceDeclaration | SyntaxKind.TypeAliasDeclaration | SyntaxKind.EnumDeclaration | SyntaxKind.ModuleDeclaration | SyntaxKind.ModuleBlock | SyntaxKind.CaseBlock | SyntaxKind.NamespaceExportDeclaration | SyntaxKind.ImportEqualsDeclaration | SyntaxKind.ImportDeclaration | SyntaxKind.ImportClause | SyntaxKind.NamespaceImport | SyntaxKind.NamedImports | SyntaxKind.ImportSpecifier | SyntaxKind.ExportAssignment | SyntaxKind.ExportDeclaration | SyntaxKind.NamedExports | SyntaxKind.ExportSpecifier | SyntaxKind.MissingDeclaration | SyntaxKind.ExternalModuleReference | SyntaxKind.JsxElement | SyntaxKind.JsxSelfClosingElement | SyntaxKind.JsxOpeningElement | SyntaxKind.JsxClosingElement | SyntaxKind.JsxAttribute | SyntaxKind.JsxSpreadAttribute | SyntaxKind.JsxExpression | SyntaxKind.CaseClause | SyntaxKind.DefaultClause | SyntaxKind.HeritageClause | SyntaxKind.CatchClause | SyntaxKind.PropertyAssignment | SyntaxKind.ShorthandPropertyAssignment | SyntaxKind.SpreadAssignment | SyntaxKind.EnumMember | SyntaxKind.SourceFile | SyntaxKind.JSDocTypeExpression | SyntaxKind.JSDocAllType | SyntaxKind.JSDocUnknownType | SyntaxKind.JSDocArrayType | SyntaxKind.JSDocUnionType | SyntaxKind.JSDocTupleType | SyntaxKind.JSDocNullableType | SyntaxKind.JSDocNonNullableType | SyntaxKind.JSDocRecordType | SyntaxKind.JSDocRecordMember | SyntaxKind.JSDocTypeReference | SyntaxKind.JSDocOptionalType | SyntaxKind.JSDocFunctionType | SyntaxKind.JSDocVariadicType | SyntaxKind.JSDocConstructorType | SyntaxKind.JSDocThisType | SyntaxKind.JSDocComment | SyntaxKind.JSDocTag | SyntaxKind.JSDocParameterTag | SyntaxKind.JSDocReturnTag | SyntaxKind.JSDocTypeTag | SyntaxKind.JSDocTemplateTag | SyntaxKind.JSDocTypedefTag | SyntaxKind.JSDocPropertyTag | SyntaxKind.JSDocTypeLiteral | SyntaxKind.JSDocLiteralType | SyntaxKind.JSDocNullKeyword | SyntaxKind.JSDocUndefinedKeyword | SyntaxKind.JSDocNeverKeyword | SyntaxKind.SyntaxList | SyntaxKind.NotEmittedStatement | SyntaxKind.PartiallyEmittedExpression | SyntaxKind.MergeDeclarationMarker | SyntaxKind.EndOfDeclarationMarker | SyntaxKind.Count;
function getOperatorPrecedence(nodeKind: SyntaxKind, operatorKind: SyntaxKind, hasArguments?: boolean): 0 | 1 | -1 | 2 | 4 | 3 | 16 | 10 | 5 | 6 | 11 | 8 | 19 | 18 | 17 | 15 | 14 | 13 | 12 | 9 | 7;
function createDiagnosticCollection(): DiagnosticCollection;
function escapeString(s: string): string;
function isIntrinsicJsxName(name: string): boolean;
function escapeNonAsciiCharacters(s: string): string;
interface EmitTextWriter {
write(s: string): void;
writeTextOfNode(text: string, node: Node): void;
writeLine(): void;
increaseIndent(): void;
decreaseIndent(): void;
getText(): string;
rawWrite(s: string): void;
writeLiteral(s: string): void;
getTextPos(): number;
getLine(): number;
getColumn(): number;
getIndent(): number;
isAtStartOfLine(): boolean;
reset(): void;
}
function getIndentString(level: number): string;
function getIndentSize(): number;
function createTextWriter(newLine: String): EmitTextWriter;
function getResolvedExternalModuleName(host: EmitHost, file: SourceFile): string;
function getExternalModuleNameFromDeclaration(host: EmitHost, resolver: EmitResolver, declaration: ImportEqualsDeclaration | ImportDeclaration | ExportDeclaration | ModuleDeclaration): string;
function getExternalModuleNameFromPath(host: EmitHost, fileName: string): string;
function getOwnEmitOutputFilePath(sourceFile: SourceFile, host: EmitHost, extension: string): string;
function getDeclarationEmitOutputFilePath(sourceFile: SourceFile, host: EmitHost): string;
interface EmitFileNames {
jsFilePath: string;
sourceMapFilePath: string;
declarationFilePath: string;
}
function getSourceFilesToEmit(host: EmitHost, targetSourceFile?: SourceFile): SourceFile[];
function filterSourceFilesInDirectory(sourceFiles: SourceFile[], isSourceFileFromExternalLibrary: (file: SourceFile) => boolean): SourceFile[];
function forEachTransformedEmitFile(host: EmitHost, sourceFiles: SourceFile[], action: (jsFilePath: string, sourceMapFilePath: string, declarationFilePath: string, sourceFiles: SourceFile[], isBundledEmit: boolean) => void, emitOnlyDtsFiles?: boolean): void;
function forEachExpectedEmitFile(host: EmitHost, action: (emitFileNames: EmitFileNames, sourceFiles: SourceFile[], isBundledEmit: boolean, emitOnlyDtsFiles: boolean) => void, targetSourceFile?: SourceFile, emitOnlyDtsFiles?: boolean): void;
function getSourceFilePathInNewDir(sourceFile: SourceFile, host: EmitHost, newDirPath: string): string;
function writeFile(host: EmitHost, diagnostics: DiagnosticCollection, fileName: string, data: string, writeByteOrderMark: boolean, sourceFiles?: SourceFile[]): void;
function getLineOfLocalPosition(currentSourceFile: SourceFile, pos: number): number;
function getLineOfLocalPositionFromLineMap(lineMap: number[], pos: number): number;
function getFirstConstructorWithBody(node: ClassLikeDeclaration): ConstructorDeclaration;
function getSetAccessorTypeAnnotationNode(accessor: SetAccessorDeclaration): TypeNode;
function getThisParameter(signature: SignatureDeclaration): ParameterDeclaration | undefined;
function parameterIsThisKeyword(parameter: ParameterDeclaration): boolean;
function isThisIdentifier(node: Node | undefined): boolean;
function identifierIsThisKeyword(id: Identifier): boolean;
interface AllAccessorDeclarations {
firstAccessor: AccessorDeclaration;
secondAccessor: AccessorDeclaration;
getAccessor: AccessorDeclaration;
setAccessor: AccessorDeclaration;
}
function getAllAccessorDeclarations(declarations: NodeArray<Declaration>, accessor: AccessorDeclaration): AllAccessorDeclarations;
function emitNewLineBeforeLeadingComments(lineMap: number[], writer: EmitTextWriter, node: TextRange, leadingComments: CommentRange[]): void;
function emitNewLineBeforeLeadingCommentsOfPosition(lineMap: number[], writer: EmitTextWriter, pos: number, leadingComments: CommentRange[]): void;
function emitNewLineBeforeLeadingCommentOfPosition(lineMap: number[], writer: EmitTextWriter, pos: number, commentPos: number): void;
function emitComments(text: string, lineMap: number[], writer: EmitTextWriter, comments: CommentRange[], leadingSeparator: boolean, trailingSeparator: boolean, newLine: string, writeComment: (text: string, lineMap: number[], writer: EmitTextWriter, commentPos: number, commentEnd: number, newLine: string) => void): void;
function emitDetachedComments(text: string, lineMap: number[], writer: EmitTextWriter, writeComment: (text: string, lineMap: number[], writer: EmitTextWriter, commentPos: number, commentEnd: number, newLine: string) => void, node: TextRange, newLine: string, removeComments: boolean): {
nodePos: number;
detachedCommentEndPos: number;
};
function writeCommentRange(text: string, lineMap: number[], writer: EmitTextWriter, commentPos: number, commentEnd: number, newLine: string): void;
function hasModifiers(node: Node): boolean;
function hasModifier(node: Node, flags: ModifierFlags): boolean;
function getModifierFlags(node: Node): ModifierFlags;
function modifierToFlag(token: SyntaxKind): ModifierFlags;
function isLogicalOperator(token: SyntaxKind): boolean;
function isAssignmentOperator(token: SyntaxKind): boolean;
function tryGetClassExtendingExpressionWithTypeArguments(node: Node): ClassLikeDeclaration | undefined;
function isAssignmentExpression(node: Node): node is AssignmentExpression;
function isDestructuringAssignment(node: Node): node is DestructuringAssignment;
function isSupportedExpressionWithTypeArguments(node: ExpressionWithTypeArguments): boolean;
function isExpressionWithTypeArgumentsInClassExtendsClause(node: Node): boolean;
function isEntityNameExpression(node: Expression): node is EntityNameExpression;
function isRightSideOfQualifiedNameOrPropertyAccess(node: Node): boolean;
function isEmptyObjectLiteralOrArrayLiteral(expression: Node): boolean;
function getLocalSymbolForExportDefault(symbol: Symbol): Symbol;
function tryExtractTypeScriptExtension(fileName: string): string | undefined;
const stringify: (value: any) => string;
function convertToBase64(input: string): string;
function getNewLineCharacter(options: CompilerOptions): string;
function isSimpleExpression(node: Expression): boolean;
function formatSyntaxKind(kind: SyntaxKind): string;
function movePos(pos: number, value: number): number;
function createRange(pos: number, end: number): TextRange;
function moveRangeEnd(range: TextRange, end: number): TextRange;
function moveRangePos(range: TextRange, pos: number): TextRange;
function moveRangePastDecorators(node: Node): TextRange;
function moveRangePastModifiers(node: Node): TextRange;
function isCollapsedRange(range: TextRange): boolean;
function collapseRangeToStart(range: TextRange): TextRange;
function collapseRangeToEnd(range: TextRange): TextRange;
function createTokenRange(pos: number, token: SyntaxKind): TextRange;
function rangeIsOnSingleLine(range: TextRange, sourceFile: SourceFile): boolean;
function rangeStartPositionsAreOnSameLine(range1: TextRange, range2: TextRange, sourceFile: SourceFile): boolean;
function rangeEndPositionsAreOnSameLine(range1: TextRange, range2: TextRange, sourceFile: SourceFile): boolean;
function rangeStartIsOnSameLineAsRangeEnd(range1: TextRange, range2: TextRange, sourceFile: SourceFile): boolean;
function rangeEndIsOnSameLineAsRangeStart(range1: TextRange, range2: TextRange, sourceFile: SourceFile): boolean;
function positionsAreOnSameLine(pos1: number, pos2: number, sourceFile: SourceFile): boolean;
function getStartPositionOfRange(range: TextRange, sourceFile: SourceFile): number;
interface ExternalModuleInfo {
externalImports: (ImportDeclaration | ImportEqualsDeclaration | ExportDeclaration)[];
exportSpecifiers: Map<ExportSpecifier[]>;
exportedBindings: Map<Identifier[]>;
exportedNames: Identifier[];
exportEquals: ExportAssignment | undefined;
hasExportStarsToExportValues: boolean;
}
function collectExternalModuleInfo(sourceFile: SourceFile, resolver: EmitResolver): ExternalModuleInfo;
function isDeclarationNameOfEnumOrNamespace(node: Identifier): boolean;
function getInitializedVariables(node: VariableDeclarationList): VariableDeclaration[];
function isMergedWithClass(node: Node): boolean;
function isFirstDeclarationOfKind(node: Node, kind: SyntaxKind): boolean;
function isNodeArray<T extends Node>(array: T[]): array is NodeArray<T>;
function isNoSubstitutionTemplateLiteral(node: Node): node is LiteralExpression;
function isLiteralKind(kind: SyntaxKind): boolean;
function isTextualLiteralKind(kind: SyntaxKind): boolean;
function isLiteralExpression(node: Node): node is LiteralExpression;
function isTemplateLiteralKind(kind: SyntaxKind): boolean;
function isTemplateHead(node: Node): node is TemplateHead;
function isTemplateMiddleOrTemplateTail(node: Node): node is TemplateMiddle | TemplateTail;
function isIdentifier(node: Node): node is Identifier;
function isGeneratedIdentifier(node: Node): node is GeneratedIdentifier;
function isModifier(node: Node): node is Modifier;
function isQualifiedName(node: Node): node is QualifiedName;
function isComputedPropertyName(node: Node): node is ComputedPropertyName;
function isEntityName(node: Node): node is EntityName;
function isPropertyName(node: Node): node is PropertyName;
function isModuleName(node: Node): node is ModuleName;
function isBindingName(node: Node): node is BindingName;
function isTypeParameter(node: Node): node is TypeParameterDeclaration;
function isParameter(node: Node): node is ParameterDeclaration;
function isDecorator(node: Node): node is Decorator;
function isMethodDeclaration(node: Node): node is MethodDeclaration;
function isClassElement(node: Node): node is ClassElement;
function isObjectLiteralElementLike(node: Node): node is ObjectLiteralElementLike;
function isTypeNode(node: Node): node is TypeNode;
function isBindingPattern(node: Node): node is BindingPattern;
function isBindingElement(node: Node): node is BindingElement;
function isArrayBindingElement(node: Node): node is ArrayBindingElement;
function isArrayLiteralExpression(node: Node): node is ArrayLiteralExpression;
function isObjectLiteralExpression(node: Node): node is ObjectLiteralExpression;
function isPropertyAccessExpression(node: Node): node is PropertyAccessExpression;
function isElementAccessExpression(node: Node): node is ElementAccessExpression;
function isBinaryExpression(node: Node): node is BinaryExpression;
function isConditionalExpression(node: Node): node is ConditionalExpression;
function isCallExpression(node: Node): node is CallExpression;
function isTemplateLiteral(node: Node): node is TemplateLiteral;
function isSpreadExpression(node: Node): node is SpreadElement;
function isExpressionWithTypeArguments(node: Node): node is ExpressionWithTypeArguments;
function isLeftHandSideExpression(node: Node): node is LeftHandSideExpression;
function isUnaryExpression(node: Node): node is UnaryExpression;
function isExpression(node: Node): node is Expression;
function isAssertionExpression(node: Node): node is AssertionExpression;
function isPartiallyEmittedExpression(node: Node): node is PartiallyEmittedExpression;
function isNotEmittedStatement(node: Node): node is NotEmittedStatement;
function isNotEmittedOrPartiallyEmittedNode(node: Node): node is NotEmittedStatement | PartiallyEmittedExpression;
function isOmittedExpression(node: Node): node is OmittedExpression;
function isTemplateSpan(node: Node): node is TemplateSpan;
function isBlock(node: Node): node is Block;
function isConciseBody(node: Node): node is ConciseBody;
function isFunctionBody(node: Node): node is FunctionBody;
function isForInitializer(node: Node): node is ForInitializer;
function isVariableDeclaration(node: Node): node is VariableDeclaration;
function isVariableDeclarationList(node: Node): node is VariableDeclarationList;
function isCaseBlock(node: Node): node is CaseBlock;
function isModuleBody(node: Node): node is ModuleBody;
function isImportEqualsDeclaration(node: Node): node is ImportEqualsDeclaration;
function isImportClause(node: Node): node is ImportClause;
function isNamedImportBindings(node: Node): node is NamedImportBindings;
function isImportSpecifier(node: Node): node is ImportSpecifier;
function isNamedExports(node: Node): node is NamedExports;
function isExportSpecifier(node: Node): node is ExportSpecifier;
function isModuleOrEnumDeclaration(node: Node): node is ModuleDeclaration | EnumDeclaration;
function isDeclaration(node: Node): node is Declaration;
function isDeclarationStatement(node: Node): node is DeclarationStatement;
function isStatementButNotDeclaration(node: Node): node is Statement;
function isStatement(node: Node): node is Statement;
function isModuleReference(node: Node): node is ModuleReference;
function isJsxOpeningElement(node: Node): node is JsxOpeningElement;
function isJsxClosingElement(node: Node): node is JsxClosingElement;
function isJsxTagNameExpression(node: Node): node is JsxTagNameExpression;
function isJsxChild(node: Node): node is JsxChild;
function isJsxAttributeLike(node: Node): node is JsxAttributeLike;
function isJsxSpreadAttribute(node: Node): node is JsxSpreadAttribute;
function isJsxAttribute(node: Node): node is JsxAttribute;
function isStringLiteralOrJsxExpression(node: Node): node is StringLiteral | JsxExpression;
function isCaseOrDefaultClause(node: Node): node is CaseOrDefaultClause;
function isHeritageClause(node: Node): node is HeritageClause;
function isCatchClause(node: Node): node is CatchClause;
function isPropertyAssignment(node: Node): node is PropertyAssignment;
function isShorthandPropertyAssignment(node: Node): node is ShorthandPropertyAssignment;
function isEnumMember(node: Node): node is EnumMember;
function isSourceFile(node: Node): node is SourceFile;
function isWatchSet(options: CompilerOptions): boolean;
}
declare namespace ts {
function getDefaultLibFileName(options: CompilerOptions): string;
function textSpanEnd(span: TextSpan): number;
function textSpanIsEmpty(span: TextSpan): boolean;
function textSpanContainsPosition(span: TextSpan, position: number): boolean;
function textSpanContainsTextSpan(span: TextSpan, other: TextSpan): boolean;
function textSpanOverlapsWith(span: TextSpan, other: TextSpan): boolean;
function textSpanOverlap(span1: TextSpan, span2: TextSpan): TextSpan;
function textSpanIntersectsWithTextSpan(span: TextSpan, other: TextSpan): boolean;
function textSpanIntersectsWith(span: TextSpan, start: number, length: number): boolean;
function decodedTextSpanIntersectsWith(start1: number, length1: number, start2: number, length2: number): boolean;
function textSpanIntersectsWithPosition(span: TextSpan, position: number): boolean;
function textSpanIntersection(span1: TextSpan, span2: TextSpan): TextSpan;
function createTextSpan(start: number, length: number): TextSpan;
function createTextSpanFromBounds(start: number, end: number): TextSpan;
function textChangeRangeNewSpan(range: TextChangeRange): TextSpan;
function textChangeRangeIsUnchanged(range: TextChangeRange): boolean;
function createTextChangeRange(span: TextSpan, newLength: number): TextChangeRange;
let unchangedTextChangeRange: TextChangeRange;
function collapseTextChangeRangesAcrossMultipleVersions(changes: TextChangeRange[]): TextChangeRange;
function getTypeParameterOwner(d: Declaration): Declaration;
function isParameterPropertyDeclaration(node: ParameterDeclaration): boolean;
function getCombinedModifierFlags(node: Node): ModifierFlags;
function getCombinedNodeFlags(node: Node): NodeFlags;
}
declare namespace ts {
function updateNode<T extends Node>(updated: T, original: T): T;
function createNodeArray<T extends Node>(elements?: T[], location?: TextRange, hasTrailingComma?: boolean): NodeArray<T>;
function createSynthesizedNode(kind: SyntaxKind, startsOnNewLine?: boolean): Node;
function createSynthesizedNodeArray<T extends Node>(elements?: T[]): NodeArray<T>;
function getSynthesizedClone<T extends Node>(node: T): T;
function getMutableClone<T extends Node>(node: T): T;
function createLiteral(textSource: StringLiteral | Identifier, location?: TextRange): StringLiteral;
function createLiteral(value: string, location?: TextRange): StringLiteral;
function createLiteral(value: number, location?: TextRange): NumericLiteral;
function createLiteral(value: boolean, location?: TextRange): BooleanLiteral;
function createLiteral(value: string | number | boolean, location?: TextRange): PrimaryExpression;
function createIdentifier(text: string, location?: TextRange): Identifier;
function createTempVariable(recordTempVariable: ((node: Identifier) => void) | undefined, location?: TextRange): Identifier;
function createLoopVariable(location?: TextRange): Identifier;
function createUniqueName(text: string, location?: TextRange): Identifier;
function getGeneratedNameForNode(node: Node, location?: TextRange): Identifier;
function createToken<TKind extends SyntaxKind>(token: TKind): Token<TKind>;
function createSuper(): PrimaryExpression;
function createThis(location?: TextRange): PrimaryExpression;
function createNull(): PrimaryExpression;
function createComputedPropertyName(expression: Expression, location?: TextRange): ComputedPropertyName;
function updateComputedPropertyName(node: ComputedPropertyName, expression: Expression): ComputedPropertyName;
function createParameter(decorators: Decorator[], modifiers: Modifier[], dotDotDotToken: DotDotDotToken, name: string | Identifier | BindingPattern, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression, location?: TextRange, flags?: NodeFlags): ParameterDeclaration;
function updateParameter(node: ParameterDeclaration, decorators: Decorator[], modifiers: Modifier[], name: BindingName, type: TypeNode, initializer: Expression): ParameterDeclaration;
function createProperty(decorators: Decorator[], modifiers: Modifier[], name: string | PropertyName, questionToken: QuestionToken, type: TypeNode, initializer: Expression, location?: TextRange): PropertyDeclaration;
function updateProperty(node: PropertyDeclaration, decorators: Decorator[], modifiers: Modifier[], name: PropertyName, type: TypeNode, initializer: Expression): PropertyDeclaration;
function createMethod(decorators: Decorator[], modifiers: Modifier[], asteriskToken: AsteriskToken, name: string | PropertyName, typeParameters: TypeParameterDeclaration[], parameters: ParameterDeclaration[], type: TypeNode, body: Block, location?: TextRange, flags?: NodeFlags): MethodDeclaration;
function updateMethod(node: MethodDeclaration, decorators: Decorator[], modifiers: Modifier[], name: PropertyName, typeParameters: TypeParameterDeclaration[], parameters: ParameterDeclaration[], type: TypeNode, body: Block): MethodDeclaration;
function createConstructor(decorators: Decorator[], modifiers: Modifier[], parameters: ParameterDeclaration[], body: Block, location?: TextRange, flags?: NodeFlags): ConstructorDeclaration;
function updateConstructor(node: ConstructorDeclaration, decorators: Decorator[], modifiers: Modifier[], parameters: ParameterDeclaration[], body: Block): ConstructorDeclaration;
function createGetAccessor(decorators: Decorator[], modifiers: Modifier[], name: string | PropertyName, parameters: ParameterDeclaration[], type: TypeNode, body: Block, location?: TextRange, flags?: NodeFlags): GetAccessorDeclaration;
function updateGetAccessor(node: GetAccessorDeclaration, decorators: Decorator[], modifiers: Modifier[], name: PropertyName, parameters: ParameterDeclaration[], type: TypeNode, body: Block): GetAccessorDeclaration;
function createSetAccessor(decorators: Decorator[], modifiers: Modifier[], name: string | PropertyName, parameters: ParameterDeclaration[], body: Block, location?: TextRange, flags?: NodeFlags): SetAccessorDeclaration;
function updateSetAccessor(node: SetAccessorDeclaration, decorators: Decorator[], modifiers: Modifier[], name: PropertyName, parameters: ParameterDeclaration[], body: Block): SetAccessorDeclaration;
function createObjectBindingPattern(elements: BindingElement[], location?: TextRange): ObjectBindingPattern;
function updateObjectBindingPattern(node: ObjectBindingPattern, elements: BindingElement[]): ObjectBindingPattern;
function createArrayBindingPattern(elements: ArrayBindingElement[], location?: TextRange): ArrayBindingPattern;
function updateArrayBindingPattern(node: ArrayBindingPattern, elements: ArrayBindingElement[]): ArrayBindingPattern;
function createBindingElement(propertyName: string | PropertyName, dotDotDotToken: DotDotDotToken, name: string | BindingName, initializer?: Expression, location?: TextRange): BindingElement;
function updateBindingElement(node: BindingElement, propertyName: PropertyName, name: BindingName, initializer: Expression): BindingElement;
function createArrayLiteral(elements?: Expression[], location?: TextRange, multiLine?: boolean): ArrayLiteralExpression;
function updateArrayLiteral(node: ArrayLiteralExpression, elements: Expression[]): ArrayLiteralExpression;
function createObjectLiteral(properties?: ObjectLiteralElementLike[], location?: TextRange, multiLine?: boolean): ObjectLiteralExpression;
function updateObjectLiteral(node: ObjectLiteralExpression, properties: ObjectLiteralElementLike[]): ObjectLiteralExpression;
function createPropertyAccess(expression: Expression, name: string | Identifier, location?: TextRange, flags?: NodeFlags): PropertyAccessExpression;
function updatePropertyAccess(node: PropertyAccessExpression, expression: Expression, name: Identifier): PropertyAccessExpression;
function createElementAccess(expression: Expression, index: number | Expression, location?: TextRange): ElementAccessExpression;
function updateElementAccess(node: ElementAccessExpression, expression: Expression, argumentExpression: Expression): ElementAccessExpression;
function createCall(expression: Expression, typeArguments: TypeNode[], argumentsArray: Expression[], location?: TextRange, flags?: NodeFlags): CallExpression;
function updateCall(node: CallExpression, expression: Expression, typeArguments: TypeNode[], argumentsArray: Expression[]): CallExpression;
function createNew(expression: Expression, typeArguments: TypeNode[], argumentsArray: Expression[], location?: TextRange, flags?: NodeFlags): NewExpression;
function updateNew(node: NewExpression, expression: Expression, typeArguments: TypeNode[], argumentsArray: Expression[]): NewExpression;
function createTaggedTemplate(tag: Expression, template: TemplateLiteral, location?: TextRange): TaggedTemplateExpression;
function updateTaggedTemplate(node: TaggedTemplateExpression, tag: Expression, template: TemplateLiteral): TaggedTemplateExpression;
function createParen(expression: Expression, location?: TextRange): ParenthesizedExpression;
function updateParen(node: ParenthesizedExpression, expression: Expression): ParenthesizedExpression;
function createFunctionExpression(modifiers: Modifier[], asteriskToken: AsteriskToken, name: string | Identifier, typeParameters: TypeParameterDeclaration[], parameters: ParameterDeclaration[], type: TypeNode, body: Block, location?: TextRange, flags?: NodeFlags): FunctionExpression;
function updateFunctionExpression(node: FunctionExpression, modifiers: Modifier[], name: Identifier, typeParameters: TypeParameterDeclaration[], parameters: ParameterDeclaration[], type: TypeNode, body: Block): FunctionExpression;
function createArrowFunction(modifiers: Modifier[], typeParameters: TypeParameterDeclaration[], parameters: ParameterDeclaration[], type: TypeNode, equalsGreaterThanToken: EqualsGreaterThanToken, body: ConciseBody, location?: TextRange, flags?: NodeFlags): ArrowFunction;
function updateArrowFunction(node: ArrowFunction, modifiers: Modifier[], typeParameters: TypeParameterDeclaration[], parameters: ParameterDeclaration[], type: TypeNode, body: ConciseBody): ArrowFunction;
function createDelete(expression: Expression, location?: TextRange): DeleteExpression;
function updateDelete(node: DeleteExpression, expression: Expression): Expression;
function createTypeOf(expression: Expression, location?: TextRange): TypeOfExpression;
function updateTypeOf(node: TypeOfExpression, expression: Expression): Expression;
function createVoid(expression: Expression, location?: TextRange): VoidExpression;
function updateVoid(node: VoidExpression, expression: Expression): VoidExpression;
function createAwait(expression: Expression, location?: TextRange): AwaitExpression;
function updateAwait(node: AwaitExpression, expression: Expression): AwaitExpression;
function createPrefix(operator: PrefixUnaryOperator, operand: Expression, location?: TextRange): PrefixUnaryExpression;
function updatePrefix(node: PrefixUnaryExpression, operand: Expression): PrefixUnaryExpression;
function createPostfix(operand: Expression, operator: PostfixUnaryOperator, location?: TextRange): PostfixUnaryExpression;
function updatePostfix(node: PostfixUnaryExpression, operand: Expression): PostfixUnaryExpression;
function createBinary(left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression, location?: TextRange): BinaryExpression;
function updateBinary(node: BinaryExpression, left: Expression, right: Expression): BinaryExpression;
function createConditional(condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression, location?: TextRange): ConditionalExpression;
function updateConditional(node: ConditionalExpression, condition: Expression, whenTrue: Expression, whenFalse: Expression): ConditionalExpression;
function createTemplateExpression(head: TemplateHead, templateSpans: TemplateSpan[], location?: TextRange): TemplateExpression;
function updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: TemplateSpan[]): TemplateExpression;
function createYield(asteriskToken: AsteriskToken, expression: Expression, location?: TextRange): YieldExpression;
function updateYield(node: YieldExpression, expression: Expression): YieldExpression;
function createSpread(expression: Expression, location?: TextRange): SpreadElement;
function updateSpread(node: SpreadElement, expression: Expression): SpreadElement;
function createClassExpression(modifiers: Modifier[], name: Identifier, typeParameters: TypeParameterDeclaration[], heritageClauses: HeritageClause[], members: ClassElement[], location?: TextRange): ClassExpression;
function updateClassExpression(node: ClassExpression, modifiers: Modifier[], name: Identifier, typeParameters: TypeParameterDeclaration[], heritageClauses: HeritageClause[], members: ClassElement[]): ClassExpression;
function createOmittedExpression(location?: TextRange): OmittedExpression;
function createExpressionWithTypeArguments(typeArguments: TypeNode[], expression: Expression, location?: TextRange): ExpressionWithTypeArguments;
function updateExpressionWithTypeArguments(node: ExpressionWithTypeArguments, typeArguments: TypeNode[], expression: Expression): ExpressionWithTypeArguments;
function createTemplateSpan(expression: Expression, literal: TemplateMiddle | TemplateTail, location?: TextRange): TemplateSpan;
function updateTemplateSpan(node: TemplateSpan, expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan;
function createBlock(statements: Statement[], location?: TextRange, multiLine?: boolean, flags?: NodeFlags): Block;
function updateBlock(node: Block, statements: Statement[]): Block;
function createVariableStatement(modifiers: Modifier[], declarationList: VariableDeclarationList | VariableDeclaration[], location?: TextRange, flags?: NodeFlags): VariableStatement;
function updateVariableStatement(node: VariableStatement, modifiers: Modifier[], declarationList: VariableDeclarationList): VariableStatement;
function createVariableDeclarationList(declarations: VariableDeclaration[], location?: TextRange, flags?: NodeFlags): VariableDeclarationList;
function updateVariableDeclarationList(node: VariableDeclarationList, declarations: VariableDeclaration[]): VariableDeclarationList;
function createVariableDeclaration(name: string | BindingPattern | Identifier, type?: TypeNode, initializer?: Expression, location?: TextRange, flags?: NodeFlags): VariableDeclaration;
function updateVariableDeclaration(node: VariableDeclaration, name: BindingName, type: TypeNode, initializer: Expression): VariableDeclaration;
function createEmptyStatement(location: TextRange): EmptyStatement;
function createStatement(expression: Expression, location?: TextRange, flags?: NodeFlags): ExpressionStatement;
function updateStatement(node: ExpressionStatement, expression: Expression): ExpressionStatement;
function createIf(expression: Expression, thenStatement: Statement, elseStatement?: Statement, location?: TextRange): IfStatement;
function updateIf(node: IfStatement, expression: Expression, thenStatement: Statement, elseStatement: Statement): IfStatement;
function createDo(statement: Statement, expression: Expression, location?: TextRange): DoStatement;
function updateDo(node: DoStatement, statement: Statement, expression: Expression): DoStatement;
function createWhile(expression: Expression, statement: Statement, location?: TextRange): WhileStatement;
function updateWhile(node: WhileStatement, expression: Expression, statement: Statement): WhileStatement;
function createFor(initializer: ForInitializer, condition: Expression, incrementor: Expression, statement: Statement, location?: TextRange): ForStatement;
function updateFor(node: ForStatement, initializer: ForInitializer, condition: Expression, incrementor: Expression, statement: Statement): ForStatement;
function createForIn(initializer: ForInitializer, expression: Expression, statement: Statement, location?: TextRange): ForInStatement;
function updateForIn(node: ForInStatement, initializer: ForInitializer, expression: Expression, statement: Statement): ForInStatement;
function createForOf(initializer: ForInitializer, expression: Expression, statement: Statement, location?: TextRange): ForOfStatement;
function updateForOf(node: ForOfStatement, initializer: ForInitializer, expression: Expression, statement: Statement): ForOfStatement;
function createContinue(label?: Identifier, location?: TextRange): ContinueStatement;
function updateContinue(node: ContinueStatement, label: Identifier): ContinueStatement;
function createBreak(label?: Identifier, location?: TextRange): BreakStatement;
function updateBreak(node: BreakStatement, label: Identifier): BreakStatement;
function createReturn(expression?: Expression, location?: TextRange): ReturnStatement;
function updateReturn(node: ReturnStatement, expression: Expression): ReturnStatement;
function createWith(expression: Expression, statement: Statement, location?: TextRange): WithStatement;
function updateWith(node: WithStatement, expression: Expression, statement: Statement): WithStatement;
function createSwitch(expression: Expression, caseBlock: CaseBlock, location?: TextRange): SwitchStatement;
function updateSwitch(node: SwitchStatement, expression: Expression, caseBlock: CaseBlock): SwitchStatement;
function createLabel(label: string | Identifier, statement: Statement, location?: TextRange): LabeledStatement;
function updateLabel(node: LabeledStatement, label: Identifier, statement: Statement): LabeledStatement;
function createThrow(expression: Expression, location?: TextRange): ThrowStatement;
function updateThrow(node: ThrowStatement, expression: Expression): ThrowStatement;
function createTry(tryBlock: Block, catchClause: CatchClause, finallyBlock: Block, location?: TextRange): TryStatement;
function updateTry(node: TryStatement, tryBlock: Block, catchClause: CatchClause, finallyBlock: Block): TryStatement;
function createCaseBlock(clauses: CaseOrDefaultClause[], location?: TextRange): CaseBlock;
function updateCaseBlock(node: CaseBlock, clauses: CaseOrDefaultClause[]): CaseBlock;
function createFunctionDeclaration(decorators: Decorator[], modifiers: Modifier[], asteriskToken: AsteriskToken, name: string | Identifier, typeParameters: TypeParameterDeclaration[], parameters: ParameterDeclaration[], type: TypeNode, body: Block, location?: TextRange, flags?: NodeFlags): FunctionDeclaration;
function updateFunctionDeclaration(node: FunctionDeclaration, decorators: Decorator[], modifiers: Modifier[], name: Identifier, typeParameters: TypeParameterDeclaration[], parameters: ParameterDeclaration[], type: TypeNode, body: Block): FunctionDeclaration;
function createClassDeclaration(decorators: Decorator[], modifiers: Modifier[], name: Identifier, typeParameters: TypeParameterDeclaration[], heritageClauses: HeritageClause[], members: ClassElement[], location?: TextRange): ClassDeclaration;
function updateClassDeclaration(node: ClassDeclaration, decorators: Decorator[], modifiers: Modifier[], name: Identifier, typeParameters: TypeParameterDeclaration[], heritageClauses: HeritageClause[], members: ClassElement[]): ClassDeclaration;
function createImportDeclaration(decorators: Decorator[], modifiers: Modifier[], importClause: ImportClause, moduleSpecifier?: Expression, location?: TextRange): ImportDeclaration;
function updateImportDeclaration(node: ImportDeclaration, decorators: Decorator[], modifiers: Modifier[], importClause: ImportClause, moduleSpecifier: Expression): ImportDeclaration;
function createImportClause(name: Identifier, namedBindings: NamedImportBindings, location?: TextRange): ImportClause;
function updateImportClause(node: ImportClause, name: Identifier, namedBindings: NamedImportBindings): ImportClause;
function createNamespaceImport(name: Identifier, location?: TextRange): NamespaceImport;
function updateNamespaceImport(node: NamespaceImport, name: Identifier): NamespaceImport;
function createNamedImports(elements: ImportSpecifier[], location?: TextRange): NamedImports;
function updateNamedImports(node: NamedImports, elements: ImportSpecifier[]): NamedImports;
function createImportSpecifier(propertyName: Identifier, name: Identifier, location?: TextRange): ImportSpecifier;
function updateImportSpecifier(node: ImportSpecifier, propertyName: Identifier, name: Identifier): ImportSpecifier;
function createExportAssignment(decorators: Decorator[], modifiers: Modifier[], isExportEquals: boolean, expression: Expression, location?: TextRange): ExportAssignment;
function updateExportAssignment(node: ExportAssignment, decorators: Decorator[], modifiers: Modifier[], expression: Expression): ExportAssignment;
function createExportDeclaration(decorators: Decorator[], modifiers: Modifier[], exportClause: NamedExports, moduleSpecifier?: Expression, location?: TextRange): ExportDeclaration;
function updateExportDeclaration(node: ExportDeclaration, decorators: Decorator[], modifiers: Modifier[], exportClause: NamedExports, moduleSpecifier: Expression): ExportDeclaration;
function createNamedExports(elements: ExportSpecifier[], location?: TextRange): NamedExports;
function updateNamedExports(node: NamedExports, elements: ExportSpecifier[]): NamedExports;
function createExportSpecifier(name: string | Identifier, propertyName?: string | Identifier, location?: TextRange): ExportSpecifier;
function updateExportSpecifier(node: ExportSpecifier, name: Identifier, propertyName: Identifier): ExportSpecifier;
function createJsxElement(openingElement: JsxOpeningElement, children: JsxChild[], closingElement: JsxClosingElement, location?: TextRange): JsxElement;
function updateJsxElement(node: JsxElement, openingElement: JsxOpeningElement, children: JsxChild[], closingElement: JsxClosingElement): JsxElement;
function createJsxSelfClosingElement(tagName: JsxTagNameExpression, attributes: JsxAttributeLike[], location?: TextRange): JsxSelfClosingElement;
function updateJsxSelfClosingElement(node: JsxSelfClosingElement, tagName: JsxTagNameExpression, attributes: JsxAttributeLike[]): JsxSelfClosingElement;
function createJsxOpeningElement(tagName: JsxTagNameExpression, attributes: JsxAttributeLike[], location?: TextRange): JsxOpeningElement;
function updateJsxOpeningElement(node: JsxOpeningElement, tagName: JsxTagNameExpression, attributes: JsxAttributeLike[]): JsxOpeningElement;
function createJsxClosingElement(tagName: JsxTagNameExpression, location?: TextRange): JsxClosingElement;
function updateJsxClosingElement(node: JsxClosingElement, tagName: JsxTagNameExpression): JsxClosingElement;
function createJsxAttribute(name: Identifier, initializer: StringLiteral | JsxExpression, location?: TextRange): JsxAttribute;
function updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: StringLiteral | JsxExpression): JsxAttribute;
function createJsxSpreadAttribute(expression: Expression, location?: TextRange): JsxSpreadAttribute;
function updateJsxSpreadAttribute(node: JsxSpreadAttribute, expression: Expression): JsxSpreadAttribute;
function createJsxExpression(expression: Expression, location?: TextRange): JsxExpression;
function updateJsxExpression(node: JsxExpression, expression: Expression): JsxExpression;
function createHeritageClause(token: SyntaxKind, types: ExpressionWithTypeArguments[], location?: TextRange): HeritageClause;
function updateHeritageClause(node: HeritageClause, types: ExpressionWithTypeArguments[]): HeritageClause;
function createCaseClause(expression: Expression, statements: Statement[], location?: TextRange): CaseClause;
function updateCaseClause(node: CaseClause, expression: Expression, statements: Statement[]): CaseClause;
function createDefaultClause(statements: Statement[], location?: TextRange): DefaultClause;
function updateDefaultClause(node: DefaultClause, statements: Statement[]): DefaultClause;
function createCatchClause(variableDeclaration: string | VariableDeclaration, block: Block, location?: TextRange): CatchClause;
function updateCatchClause(node: CatchClause, variableDeclaration: VariableDeclaration, block: Block): CatchClause;
function createPropertyAssignment(name: string | PropertyName, initializer: Expression, location?: TextRange): PropertyAssignment;
function updatePropertyAssignment(node: PropertyAssignment, name: PropertyName, initializer: Expression): PropertyAssignment;
function createShorthandPropertyAssignment(name: string | Identifier, objectAssignmentInitializer: Expression, location?: TextRange): ShorthandPropertyAssignment;
function createSpreadAssignment(expression: Expression, location?: TextRange): SpreadAssignment;
function updateShorthandPropertyAssignment(node: ShorthandPropertyAssignment, name: Identifier, objectAssignmentInitializer: Expression): ShorthandPropertyAssignment;
function updateSpreadAssignment(node: SpreadAssignment, expression: Expression): SpreadAssignment;
function updateSourceFileNode(node: SourceFile, statements: Statement[]): SourceFile;
function createNotEmittedStatement(original: Node): NotEmittedStatement;
function createEndOfDeclarationMarker(original: Node): EndOfDeclarationMarker;
function createMergeDeclarationMarker(original: Node): MergeDeclarationMarker;
function createPartiallyEmittedExpression(expression: Expression, original?: Node, location?: TextRange): PartiallyEmittedExpression;
function updatePartiallyEmittedExpression(node: PartiallyEmittedExpression, expression: Expression): PartiallyEmittedExpression;
function createComma(left: Expression, right: Expression): Expression;
function createLessThan(left: Expression, right: Expression, location?: TextRange): Expression;
function createAssignment(left: Expression, right: Expression, location?: TextRange): BinaryExpression;
function createStrictEquality(left: Expression, right: Expression): BinaryExpression;
function createStrictInequality(left: Expression, right: Expression): BinaryExpression;
function createAdd(left: Expression, right: Expression): BinaryExpression;
function createSubtract(left: Expression, right: Expression): BinaryExpression;
function createPostfixIncrement(operand: Expression, location?: TextRange): PostfixUnaryExpression;
function createLogicalAnd(left: Expression, right: Expression): BinaryExpression;
function createLogicalOr(left: Expression, right: Expression): BinaryExpression;
function createLogicalNot(operand: Expression): PrefixUnaryExpression;
function createVoidZero(): VoidExpression;
function createMemberAccessForPropertyName(target: Expression, memberName: PropertyName, location?: TextRange): MemberExpression;
function createFunctionCall(func: Expression, thisArg: Expression, argumentsList: Expression[], location?: TextRange): CallExpression;
function createFunctionApply(func: Expression, thisArg: Expression, argumentsExpression: Expression, location?: TextRange): CallExpression;
function createArraySlice(array: Expression, start?: number | Expression): CallExpression;
function createArrayConcat(array: Expression, values: Expression[]): CallExpression;
function createMathPow(left: Expression, right: Expression, location?: TextRange): CallExpression;
function createExpressionForJsxElement(jsxFactoryEntity: EntityName, reactNamespace: string, tagName: Expression, props: Expression, children: Expression[], parentElement: JsxOpeningLikeElement, location: TextRange): LeftHandSideExpression;
function createExportDefault(expression: Expression): ExportAssignment;
function createExternalModuleExport(exportName: Identifier): ExportDeclaration;
function createLetStatement(name: Identifier, initializer: Expression, location?: TextRange): VariableStatement;
function createLetDeclarationList(declarations: VariableDeclaration[], location?: TextRange): VariableDeclarationList;
function createConstDeclarationList(declarations: VariableDeclaration[], location?: TextRange): VariableDeclarationList;
function createHelperName(externalHelpersModuleName: Identifier | undefined, name: string): Identifier | PropertyAccessExpression;
function createExtendsHelper(externalHelpersModuleName: Identifier | undefined, name: Identifier): CallExpression;
function createAssignHelper(externalHelpersModuleName: Identifier | undefined, attributesSegments: Expression[]): CallExpression;
function createParamHelper(externalHelpersModuleName: Identifier | undefined, expression: Expression, parameterOffset: number, location?: TextRange): CallExpression;
function createMetadataHelper(externalHelpersModuleName: Identifier | undefined, metadataKey: string, metadataValue: Expression): CallExpression;
function createDecorateHelper(externalHelpersModuleName: Identifier | undefined, decoratorExpressions: Expression[], target: Expression, memberName?: Expression, descriptor?: Expression, location?: TextRange): CallExpression;
function createAwaiterHelper(externalHelpersModuleName: Identifier | undefined, hasLexicalArguments: boolean, promiseConstructor: EntityName | Expression, body: Block): CallExpression;
function createHasOwnProperty(target: LeftHandSideExpression, propertyName: Expression): CallExpression;
function createAdvancedAsyncSuperHelper(): VariableStatement;
function createSimpleAsyncSuperHelper(): VariableStatement;
interface CallBinding {
target: LeftHandSideExpression;
thisArg: Expression;
}
function createCallBinding(expression: Expression, recordTempVariable: (temp: Identifier) => void, languageVersion?: ScriptTarget, cacheIdentifiers?: boolean): CallBinding;
function inlineExpressions(expressions: Expression[]): Expression;
function createExpressionFromEntityName(node: EntityName | Expression): Expression;
function createExpressionForPropertyName(memberName: PropertyName): Expression;
function createExpressionForObjectLiteralElementLike(node: ObjectLiteralExpression, property: ObjectLiteralElementLike, receiver: Expression): Expression;
function getLocalName(node: Declaration, allowComments?: boolean, allowSourceMaps?: boolean): Identifier;
function isLocalName(node: Identifier): boolean;
function getExportName(node: Declaration, allowComments?: boolean, allowSourceMaps?: boolean): Identifier;
function isExportName(node: Identifier): boolean;
function getDeclarationName(node: Declaration, allowComments?: boolean, allowSourceMaps?: boolean): Identifier;
function getExternalModuleOrNamespaceExportName(ns: Identifier | undefined, node: Declaration, allowComments?: boolean, allowSourceMaps?: boolean): Identifier | PropertyAccessExpression;
function getNamespaceMemberName(ns: Identifier, name: Identifier, allowComments?: boolean, allowSourceMaps?: boolean): PropertyAccessExpression;
function addPrologueDirectives(target: Statement[], source: Statement[], ensureUseStrict?: boolean, visitor?: (node: Node) => VisitResult<Node>): number;
function ensureUseStrict(node: SourceFile): SourceFile;
function parenthesizeBinaryOperand(binaryOperator: SyntaxKind, operand: Expression, isLeftSideOfBinary: boolean, leftOperand?: Expression): Expression;
function parenthesizeForNew(expression: Expression): LeftHandSideExpression;
function parenthesizeForAccess(expression: Expression): LeftHandSideExpression;
function parenthesizePostfixOperand(operand: Expression): LeftHandSideExpression;
function parenthesizePrefixOperand(operand: Expression): UnaryExpression;
function parenthesizeExpressionForList(expression: Expression): Expression;
function parenthesizeExpressionForExpressionStatement(expression: Expression): Expression;
function parenthesizeConciseBody(body: ConciseBody): ConciseBody;
const enum OuterExpressionKinds {
Parentheses = 1,
Assertions = 2,
PartiallyEmittedExpressions = 4,
All = 7,
}
function skipOuterExpressions(node: Expression, kinds?: OuterExpressionKinds): Expression;
function skipOuterExpressions(node: Node, kinds?: OuterExpressionKinds): Node;
function skipParentheses(node: Expression): Expression;
function skipParentheses(node: Node): Node;
function skipAssertions(node: Expression): Expression;
function skipAssertions(node: Node): Node;
function skipPartiallyEmittedExpressions(node: Expression): Expression;
function skipPartiallyEmittedExpressions(node: Node): Node;
function startOnNewLine<T extends Node>(node: T): T;
function setOriginalNode<T extends Node>(node: T, original: Node): T;
function disposeEmitNodes(sourceFile: SourceFile): void;
function getEmitFlags(node: Node): EmitFlags;
function setEmitFlags<T extends Node>(node: T, emitFlags: EmitFlags): T;
function setSourceMapRange<T extends Node>(node: T, range: TextRange): T;
function setTokenSourceMapRange<T extends Node>(node: T, token: SyntaxKind, range: TextRange): T;
function setCommentRange<T extends Node>(node: T, range: TextRange): T;
function getCommentRange(node: Node): TextRange;
function getSourceMapRange(node: Node): TextRange;
function getTokenSourceMapRange(node: Node, token: SyntaxKind): TextRange;
function getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number;
function setConstantValue(node: PropertyAccessExpression | ElementAccessExpression, value: number): PropertyAccessExpression | ElementAccessExpression;
function setTextRange<T extends TextRange>(node: T, location: TextRange): T;
function setNodeFlags<T extends Node>(node: T, flags: NodeFlags): T;
function setMultiLine<T extends ObjectLiteralExpression | ArrayLiteralExpression | Block>(node: T, multiLine: boolean): T;
function setHasTrailingComma<T extends Node>(nodes: NodeArray<T>, hasTrailingComma: boolean): NodeArray<T>;
function getLocalNameForExternalImport(node: ImportDeclaration | ExportDeclaration | ImportEqualsDeclaration, sourceFile: SourceFile): Identifier;
function getExternalModuleNameLiteral(importNode: ImportDeclaration | ExportDeclaration | ImportEqualsDeclaration, sourceFile: SourceFile, host: EmitHost, resolver: EmitResolver, compilerOptions: CompilerOptions): StringLiteral;
function tryGetModuleNameFromFile(file: SourceFile, host: EmitHost, options: CompilerOptions): StringLiteral;
function transformFunctionBody(node: FunctionLikeDeclaration, visitor: (node: Node) => VisitResult<Node>, currentSourceFile: SourceFile, context: TransformationContext, enableSubstitutionsForCapturedThis: () => void, convertObjectRest?: boolean): Block;
function addCaptureThisForNodeIfNeeded(statements: Statement[], node: Node, enableSubstitutionsForCapturedThis: () => void): void;
function captureThisForNode(statements: Statement[], node: Node, initializer: Expression | undefined, enableSubstitutionsForCapturedThis?: () => void, originalStatement?: Statement): void;
function addDefaultValueAssignmentsIfNeeded(statements: Statement[], node: FunctionLikeDeclaration, visitor: (node: Node) => VisitResult<Node>, convertObjectRest: boolean): void;
function addRestParameterIfNeeded(statements: Statement[], node: FunctionLikeDeclaration, inConstructorWithSynthesizedSuper: boolean): void;
function convertForOf(node: ForOfStatement, convertedLoopBodyStatements: Statement[], visitor: (node: Node) => VisitResult<Node>, enableSubstitutionsForBlockScopedBindings: () => void, context: TransformationContext, convertObjectRest?: boolean): ForStatement | ForOfStatement;
}
declare namespace ts {
function createNode(kind: SyntaxKind, pos?: number, end?: number): Node;
function forEachChild<T>(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T;
function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean, scriptKind?: ScriptKind): SourceFile;
function parseIsolatedEntityName(text: string, languageVersion: ScriptTarget): EntityName;
function isExternalModule(file: SourceFile): boolean;
function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile;
function parseIsolatedJSDocComment(content: string, start?: number, length?: number): {
jsDoc: JSDoc;
diagnostics: Diagnostic[];
};
function parseJSDocTypeExpressionForTests(content: string, start?: number, length?: number): {
jsDocTypeExpression: JSDocTypeExpression;
diagnostics: Diagnostic[];
};
}
declare namespace ts {
const enum ModuleInstanceState {
NonInstantiated = 0,
Instantiated = 1,
ConstEnumOnly = 2,
}
function getModuleInstanceState(node: Node): ModuleInstanceState;
function bindSourceFile(file: SourceFile, options: CompilerOptions): void;
function computeTransformFlagsForNode(node: Node, subtreeFlags: TransformFlags): TransformFlags;
function getTransformFlagsSubtreeExclusions(kind: SyntaxKind): TransformFlags;
}
declare namespace ts {
function getNodeId(node: Node): number;
function getSymbolId(symbol: Symbol): number;
function createTypeChecker(host: TypeCheckerHost, produceDiagnostics: boolean): TypeChecker;
}
declare namespace ts {
type VisitResult<T extends Node> = T | T[];
function reduceEachChild<T>(node: Node, f: (memo: T, node: Node) => T, initial: T): T;
function visitNode<T extends Node>(node: T, visitor: (node: Node) => VisitResult<Node>, test: (node: Node) => boolean, optional?: boolean, lift?: (node: NodeArray<Node>) => T): T;
function visitNode<T extends Node>(node: T, visitor: (node: Node) => VisitResult<Node>, test: (node: Node) => boolean, optional: boolean, lift: (node: NodeArray<Node>) => T, parenthesize: (node: Node, parentNode: Node) => Node, parentNode: Node): T;
function visitNodes<T extends Node>(nodes: NodeArray<T>, visitor: (node: Node) => VisitResult<Node>, test: (node: Node) => boolean, start?: number, count?: number): NodeArray<T>;
function visitNodes<T extends Node>(nodes: NodeArray<T>, visitor: (node: Node) => VisitResult<Node>, test: (node: Node) => boolean, start: number, count: number, parenthesize: (node: Node, parentNode: Node) => Node, parentNode: Node): NodeArray<T>;
function visitEachChild<T extends Node>(node: T, visitor: (node: Node) => VisitResult<Node>, context: LexicalEnvironment): T;
function mergeFunctionBodyLexicalEnvironment(body: FunctionBody, declarations: Statement[]): FunctionBody;
function mergeFunctionBodyLexicalEnvironment(body: ConciseBody, declarations: Statement[]): ConciseBody;
function liftToBlock(nodes: Node[]): Statement;
function aggregateTransformFlags<T extends Node>(node: T): T;
namespace Debug {
const failNotOptional: typeof noop;
const failBadSyntaxKind: (node: Node, message?: string) => void;
const assertNode: (node: Node, test: (node: Node) => boolean, message?: string) => void;
}
}
declare namespace ts {
function flattenDestructuringAssignment(context: TransformationContext, node: BinaryExpression, needsValue: boolean, recordTempVariable: (node: Identifier) => void, visitor?: (node: Node) => VisitResult<Node>, transformRest?: boolean): Expression;
function flattenParameterDestructuring(node: ParameterDeclaration, value: Expression, visitor?: (node: Node) => VisitResult<Node>, transformRest?: boolean): VariableDeclaration[];
function flattenVariableDestructuring(node: VariableDeclaration, value?: Expression, visitor?: (node: Node) => VisitResult<Node>, recordTempVariable?: (node: Identifier) => void, transformRest?: boolean): VariableDeclaration[];
function flattenVariableDestructuringToExpression(node: VariableDeclaration, recordTempVariable: (name: Identifier) => void, createAssignmentCallback?: (name: Identifier, value: Expression, location?: TextRange) => Expression, visitor?: (node: Node) => VisitResult<Node>): Expression;
}
declare namespace ts {
function transformTypeScript(context: TransformationContext): (node: SourceFile) => SourceFile;
}
declare namespace ts {
function transformJsx(context: TransformationContext): (node: SourceFile) => SourceFile;
}
declare namespace ts {
function transformESNext(context: TransformationContext): (node: SourceFile) => SourceFile;
}
declare namespace ts {
function transformES2017(context: TransformationContext): (node: SourceFile) => SourceFile;
}
declare namespace ts {
function transformES2016(context: TransformationContext): (node: SourceFile) => SourceFile;
}
declare namespace ts {
function transformES2015(context: TransformationContext): (node: SourceFile) => SourceFile;
}
declare namespace ts {
function transformGenerators(context: TransformationContext): (node: SourceFile) => SourceFile;
}
declare namespace ts {
function transformES5(context: TransformationContext): (node: SourceFile) => SourceFile;
}
declare namespace ts {
function transformModule(context: TransformationContext): (node: SourceFile) => SourceFile;
}
declare namespace ts {
function transformSystemModule(context: TransformationContext): (node: SourceFile) => SourceFile;
}
declare namespace ts {
function transformES2015Module(context: TransformationContext): (node: SourceFile) => SourceFile;
}
declare namespace ts {
interface TransformationResult {
transformed: SourceFile[];
emitNodeWithSubstitution(emitContext: EmitContext, node: Node, emitCallback: (emitContext: EmitContext, node: Node) => void): void;
emitNodeWithNotification(emitContext: EmitContext, node: Node, emitCallback: (emitContext: EmitContext, node: Node) => void): void;
}
interface TransformationContext extends LexicalEnvironment {
getCompilerOptions(): CompilerOptions;
getEmitResolver(): EmitResolver;
getEmitHost(): EmitHost;
hoistFunctionDeclaration(node: FunctionDeclaration): void;
hoistVariableDeclaration(node: Identifier): void;
enableSubstitution(kind: SyntaxKind): void;
isSubstitutionEnabled(node: Node): boolean;
onSubstituteNode?: (emitContext: EmitContext, node: Node) => Node;
enableEmitNotification(kind: SyntaxKind): void;
isEmitNotificationEnabled(node: Node): boolean;
onEmitNode?: (emitContext: EmitContext, node: Node, emitCallback: (emitContext: EmitContext, node: Node) => void) => void;
}
type Transformer = (context: TransformationContext) => (node: SourceFile) => SourceFile;
function getTransformers(compilerOptions: CompilerOptions): Transformer[];
function transformFiles(resolver: EmitResolver, host: EmitHost, sourceFiles: SourceFile[], transformers: Transformer[]): TransformationResult;
}
declare namespace ts {
function getDeclarationDiagnostics(host: EmitHost, resolver: EmitResolver, targetSourceFile: SourceFile): Diagnostic[];
function writeDeclarationFile(declarationFilePath: string, sourceFiles: SourceFile[], isBundledEmit: boolean, host: EmitHost, resolver: EmitResolver, emitterDiagnostics: DiagnosticCollection, emitOnlyDtsFiles: boolean): boolean;
}
declare namespace ts {
interface SourceMapWriter {
initialize(filePath: string, sourceMapFilePath: string, sourceFiles: SourceFile[], isBundledEmit: boolean): void;
reset(): void;
setSourceFile(sourceFile: SourceFile): void;
emitPos(pos: number): void;
emitNodeWithSourceMap(emitContext: EmitContext, node: Node, emitCallback: (emitContext: EmitContext, node: Node) => void): void;
emitTokenWithSourceMap(node: Node, token: SyntaxKind, tokenStartPos: number, emitCallback: (token: SyntaxKind, tokenStartPos: number) => number): number;
getText(): string;
getSourceMappingURL(): string;
getSourceMapData(): SourceMapData;
}
function createSourceMapWriter(host: EmitHost, writer: EmitTextWriter): SourceMapWriter;
}
declare namespace ts {
interface CommentWriter {
reset(): void;
setSourceFile(sourceFile: SourceFile): void;
emitNodeWithComments(emitContext: EmitContext, node: Node, emitCallback: (emitContext: EmitContext, node: Node) => void): void;
emitBodyWithDetachedComments(node: Node, detachedRange: TextRange, emitCallback: (node: Node) => void): void;
emitTrailingCommentsOfPosition(pos: number): void;
}
function createCommentWriter(host: EmitHost, writer: EmitTextWriter, sourceMap: SourceMapWriter): CommentWriter;
}
declare namespace ts {
function emitFiles(resolver: EmitResolver, host: EmitHost, targetSourceFile: SourceFile, emitOnlyDtsFiles?: boolean): EmitResult;
}
declare namespace ts {
const version = "2.2.0";
function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean, configName?: string): string;
function resolveTripleslashReference(moduleName: string, containingFile: string): string;
function computeCommonSourceDirectoryOfFilenames(fileNames: string[], currentDirectory: string, getCanonicalFileName: (fileName: string) => string): string;
function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost;
function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): Diagnostic[];
interface FormatDiagnosticsHost {
getCurrentDirectory(): string;
getCanonicalFileName(fileName: string): string;
getNewLine(): string;
}
function formatDiagnostics(diagnostics: Diagnostic[], host: FormatDiagnosticsHost): string;
function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string;
function createProgram(rootNames: string[], options: CompilerOptions, host?: CompilerHost, oldProgram?: Program): Program;
function getResolutionDiagnostic(options: CompilerOptions, {extension}: ResolvedModuleFull): DiagnosticMessage | undefined;
}
declare namespace ts {
interface Node {
getSourceFile(): SourceFile;
getChildCount(sourceFile?: SourceFile): number;
getChildAt(index: number, sourceFile?: SourceFile): Node;
getChildren(sourceFile?: SourceFile): Node[];
getStart(sourceFile?: SourceFile, includeJsDocComment?: boolean): number;
getFullStart(): number;
getEnd(): number;
getWidth(sourceFile?: SourceFile): number;
getFullWidth(): number;
getLeadingTriviaWidth(sourceFile?: SourceFile): number;
getFullText(sourceFile?: SourceFile): string;
getText(sourceFile?: SourceFile): string;
getFirstToken(sourceFile?: SourceFile): Node;
getLastToken(sourceFile?: SourceFile): Node;
}
interface Symbol {
getFlags(): SymbolFlags;
getName(): string;
getDeclarations(): Declaration[];
getDocumentationComment(): SymbolDisplayPart[];
}
interface Type {
getFlags(): TypeFlags;
getSymbol(): Symbol;
getProperties(): Symbol[];
getProperty(propertyName: string): Symbol;
getApparentProperties(): Symbol[];
getCallSignatures(): Signature[];
getConstructSignatures(): Signature[];
getStringIndexType(): Type;
getNumberIndexType(): Type;
getBaseTypes(): ObjectType[];
getNonNullableType(): Type;
}
interface Signature {
getDeclaration(): SignatureDeclaration;
getTypeParameters(): Type[];
getParameters(): Symbol[];
getReturnType(): Type;
getDocumentationComment(): SymbolDisplayPart[];
}
interface SourceFile {
version: string;
scriptSnapshot: IScriptSnapshot;
nameTable: Map<number>;
getNamedDeclarations(): Map<Declaration[]>;
getLineAndCharacterOfPosition(pos: number): LineAndCharacter;
getLineStarts(): number[];
getPositionOfLineAndCharacter(line: number, character: number): number;
update(newText: string, textChangeRange: TextChangeRange): SourceFile;
}
interface IScriptSnapshot {
getText(start: number, end: number): string;
getLength(): number;
getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange | undefined;
dispose?(): void;
}
namespace ScriptSnapshot {
function fromString(text: string): IScriptSnapshot;
}
interface PreProcessedFileInfo {
referencedFiles: FileReference[];
typeReferenceDirectives: FileReference[];
importedFiles: FileReference[];
ambientExternalModules: string[];
isLibFile: boolean;
}
interface HostCancellationToken {
isCancellationRequested(): boolean;
}
interface LanguageServiceHost {
getCompilationSettings(): CompilerOptions;
getNewLine?(): string;
getProjectVersion?(): string;
getScriptFileNames(): string[];
getScriptKind?(fileName: string): ScriptKind;
getScriptVersion(fileName: string): string;
getScriptSnapshot(fileName: string): IScriptSnapshot | undefined;
getLocalizedDiagnosticMessages?(): any;
getCancellationToken?(): HostCancellationToken;
getCurrentDirectory(): string;
getDefaultLibFileName(options: CompilerOptions): string;
log?(s: string): void;
trace?(s: string): void;
error?(s: string): void;
useCaseSensitiveFileNames?(): boolean;
readDirectory?(path: string, extensions?: string[], exclude?: string[], include?: string[]): string[];
readFile?(path: string, encoding?: string): string;
fileExists?(path: string): boolean;
getTypeRootsVersion?(): number;
resolveModuleNames?(moduleNames: string[], containingFile: string): ResolvedModule[];
resolveTypeReferenceDirectives?(typeDirectiveNames: string[], containingFile: string): ResolvedTypeReferenceDirective[];
directoryExists?(directoryName: string): boolean;
getDirectories?(directoryName: string): string[];
}
interface LanguageService {
cleanupSemanticCache(): void;
getSyntacticDiagnostics(fileName: string): Diagnostic[];
getSemanticDiagnostics(fileName: string): Diagnostic[];
getCompilerOptionsDiagnostics(): Diagnostic[];
getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[];
getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[];
getEncodedSyntacticClassifications(fileName: string, span: TextSpan): Classifications;
getEncodedSemanticClassifications(fileName: string, span: TextSpan): Classifications;
getCompletionsAtPosition(fileName: string, position: number): CompletionInfo;
getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails;
getCompletionEntrySymbol(fileName: string, position: number, entryName: string): Symbol;
getQuickInfoAtPosition(fileName: string, position: number): QuickInfo;
getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan;
getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan;
getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems;
getRenameInfo(fileName: string, position: number): RenameInfo;
findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): RenameLocation[];
getDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[];
getTypeDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[];
getImplementationAtPosition(fileName: string, position: number): ImplementationLocation[];
getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[];
findReferences(fileName: string, position: number): ReferencedSymbol[];
getDocumentHighlights(fileName: string, position: number, filesToSearch: string[]): DocumentHighlights[];
getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[];
getNavigateToItems(searchValue: string, maxResultCount?: number, fileName?: string, excludeDtsFiles?: boolean): NavigateToItem[];
getNavigationBarItems(fileName: string): NavigationBarItem[];
getNavigationTree(fileName: string): NavigationTree;
getOutliningSpans(fileName: string): OutliningSpan[];
getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[];
getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[];
getIndentationAtPosition(fileName: string, position: number, options: EditorOptions | EditorSettings): number;
getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[];
getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[];
getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[];
getDocCommentTemplateAtPosition(fileName: string, position: number): TextInsertion;
isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean;
getCodeFixesAtPosition(fileName: string, start: number, end: number, errorCodes: number[]): CodeAction[];
getEmitOutput(fileName: string, emitOnlyDtsFiles?: boolean): EmitOutput;
getProgram(): Program;
getNonBoundSourceFile(fileName: string): SourceFile;
getSourceFile(fileName: string): SourceFile;
dispose(): void;
}
interface Classifications {
spans: number[];
endOfLineState: EndOfLineState;
}
interface ClassifiedSpan {
textSpan: TextSpan;
classificationType: string;
}
interface NavigationBarItem {
text: string;
kind: string;
kindModifiers: string;
spans: TextSpan[];
childItems: NavigationBarItem[];
indent: number;
bolded: boolean;
grayed: boolean;
}
interface NavigationTree {
text: string;
kind: string;
kindModifiers: string;
spans: TextSpan[];
childItems?: NavigationTree[];
}
interface TodoCommentDescriptor {
text: string;
priority: number;
}
interface TodoComment {
descriptor: TodoCommentDescriptor;
message: string;
position: number;
}
class TextChange {
span: TextSpan;
newText: string;
}
interface FileTextChanges {
fileName: string;
textChanges: TextChange[];
}
interface CodeAction {
description: string;
changes: FileTextChanges[];
}
interface TextInsertion {
newText: string;
caretOffset: number;
}
interface RenameLocation {
textSpan: TextSpan;
fileName: string;
}
interface ReferenceEntry {
textSpan: TextSpan;
fileName: string;
isWriteAccess: boolean;
isDefinition: boolean;
}
interface ImplementationLocation {
textSpan: TextSpan;
fileName: string;
}
interface DocumentHighlights {
fileName: string;
highlightSpans: HighlightSpan[];
}
namespace HighlightSpanKind {
const none = "none";
const definition = "definition";
const reference = "reference";
const writtenReference = "writtenReference";
}
interface HighlightSpan {
fileName?: string;
textSpan: TextSpan;
kind: string;
}
interface NavigateToItem {
name: string;
kind: string;
kindModifiers: string;
matchKind: string;
isCaseSensitive: boolean;
fileName: string;
textSpan: TextSpan;
containerName: string;
containerKind: string;
}
enum IndentStyle {
None = 0,
Block = 1,
Smart = 2,
}
interface EditorOptions {
BaseIndentSize?: number;
IndentSize: number;
TabSize: number;
NewLineCharacter: string;
ConvertTabsToSpaces: boolean;
IndentStyle: IndentStyle;
}
interface EditorSettings {
baseIndentSize?: number;
indentSize?: number;
tabSize?: number;
newLineCharacter?: string;
convertTabsToSpaces?: boolean;
indentStyle?: IndentStyle;
}
interface FormatCodeOptions extends EditorOptions {
InsertSpaceAfterCommaDelimiter: boolean;
InsertSpaceAfterSemicolonInForStatements: boolean;
InsertSpaceBeforeAndAfterBinaryOperators: boolean;
InsertSpaceAfterKeywordsInControlFlowStatements: boolean;
InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean;
InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean;
InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: boolean;
InsertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean;
InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: boolean;
InsertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean;
InsertSpaceAfterTypeAssertion?: boolean;
PlaceOpenBraceOnNewLineForFunctions: boolean;
PlaceOpenBraceOnNewLineForControlBlocks: boolean;
}
interface FormatCodeSettings extends EditorSettings {
insertSpaceAfterCommaDelimiter?: boolean;
insertSpaceAfterSemicolonInForStatements?: boolean;
insertSpaceBeforeAndAfterBinaryOperators?: boolean;
insertSpaceAfterKeywordsInControlFlowStatements?: boolean;
insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean;
insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean;
insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean;
insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean;
insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean;
insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean;
insertSpaceAfterTypeAssertion?: boolean;
placeOpenBraceOnNewLineForFunctions?: boolean;
placeOpenBraceOnNewLineForControlBlocks?: boolean;
}
interface DefinitionInfo {
fileName: string;
textSpan: TextSpan;
kind: string;
name: string;
containerKind: string;
containerName: string;
}
interface ReferencedSymbolDefinitionInfo extends DefinitionInfo {
displayParts: SymbolDisplayPart[];
}
interface ReferencedSymbol {
definition: ReferencedSymbolDefinitionInfo;
references: ReferenceEntry[];
}
enum SymbolDisplayPartKind {
aliasName = 0,
className = 1,
enumName = 2,
fieldName = 3,
interfaceName = 4,
keyword = 5,
lineBreak = 6,
numericLiteral = 7,
stringLiteral = 8,
localName = 9,
methodName = 10,
moduleName = 11,
operator = 12,
parameterName = 13,
propertyName = 14,
punctuation = 15,
space = 16,
text = 17,
typeParameterName = 18,
enumMemberName = 19,
functionName = 20,
regularExpressionLiteral = 21,
}
interface SymbolDisplayPart {
text: string;
kind: string;
}
interface QuickInfo {
kind: string;
kindModifiers: string;
textSpan: TextSpan;
displayParts: SymbolDisplayPart[];
documentation: SymbolDisplayPart[];
}
interface RenameInfo {
canRename: boolean;
localizedErrorMessage: string;
displayName: string;
fullDisplayName: string;
kind: string;
kindModifiers: string;
triggerSpan: TextSpan;
}
interface SignatureHelpParameter {
name: string;
documentation: SymbolDisplayPart[];
displayParts: SymbolDisplayPart[];
isOptional: boolean;
}
interface SignatureHelpItem {
isVariadic: boolean;
prefixDisplayParts: SymbolDisplayPart[];
suffixDisplayParts: SymbolDisplayPart[];
separatorDisplayParts: SymbolDisplayPart[];
parameters: SignatureHelpParameter[];
documentation: SymbolDisplayPart[];
}
interface SignatureHelpItems {
items: SignatureHelpItem[];
applicableSpan: TextSpan;
selectedItemIndex: number;
argumentIndex: number;
argumentCount: number;
}
interface CompletionInfo {
isGlobalCompletion: boolean;
isMemberCompletion: boolean;
isNewIdentifierLocation: boolean;
entries: CompletionEntry[];
}
interface CompletionEntry {
name: string;
kind: string;
kindModifiers: string;
sortText: string;
replacementSpan?: TextSpan;
}
interface CompletionEntryDetails {
name: string;
kind: string;
kindModifiers: string;
displayParts: SymbolDisplayPart[];
documentation: SymbolDisplayPart[];
}
interface OutliningSpan {
textSpan: TextSpan;
hintSpan: TextSpan;
bannerText: string;
autoCollapse: boolean;
}
interface EmitOutput {
outputFiles: OutputFile[];
emitSkipped: boolean;
}
const enum OutputFileType {
JavaScript = 0,
SourceMap = 1,
Declaration = 2,
}
interface OutputFile {
name: string;
writeByteOrderMark: boolean;
text: string;
}
const enum EndOfLineState {
None = 0,
InMultiLineCommentTrivia = 1,
InSingleQuoteStringLiteral = 2,
InDoubleQuoteStringLiteral = 3,
InTemplateHeadOrNoSubstitutionTemplate = 4,
InTemplateMiddleOrTail = 5,
InTemplateSubstitutionPosition = 6,
}
enum TokenClass {
Punctuation = 0,
Keyword = 1,
Operator = 2,
Comment = 3,
Whitespace = 4,
Identifier = 5,
NumberLiteral = 6,
StringLiteral = 7,
RegExpLiteral = 8,
}
interface ClassificationResult {
finalLexState: EndOfLineState;
entries: ClassificationInfo[];
}
interface ClassificationInfo {
length: number;
classification: TokenClass;
}
interface Classifier {
getClassificationsForLine(text: string, lexState: EndOfLineState, syntacticClassifierAbsent: boolean): ClassificationResult;
getEncodedLexicalClassifications(text: string, endOfLineState: EndOfLineState, syntacticClassifierAbsent: boolean): Classifications;
}
namespace ScriptElementKind {
const unknown = "";
const warning = "warning";
const keyword = "keyword";
const scriptElement = "script";
const moduleElement = "module";
const classElement = "class";
const localClassElement = "local class";
const interfaceElement = "interface";
const typeElement = "type";
const enumElement = "enum";
const enumMemberElement = "const";
const variableElement = "var";
const localVariableElement = "local var";
const functionElement = "function";
const localFunctionElement = "local function";
const memberFunctionElement = "method";
const memberGetAccessorElement = "getter";
const memberSetAccessorElement = "setter";
const memberVariableElement = "property";
const constructorImplementationElement = "constructor";
const callSignatureElement = "call";
const indexSignatureElement = "index";
const constructSignatureElement = "construct";
const parameterElement = "parameter";
const typeParameterElement = "type parameter";
const primitiveType = "primitive type";
const label = "label";
const alias = "alias";
const constElement = "const";
const letElement = "let";
const directory = "directory";
const externalModuleName = "external module name";
}
namespace ScriptElementKindModifier {
const none = "";
const publicMemberModifier = "public";
const privateMemberModifier = "private";
const protectedMemberModifier = "protected";
const exportedModifier = "export";
const ambientModifier = "declare";
const staticModifier = "static";
const abstractModifier = "abstract";
}
class ClassificationTypeNames {
static comment: string;
static identifier: string;
static keyword: string;
static numericLiteral: string;
static operator: string;
static stringLiteral: string;
static whiteSpace: string;
static text: string;
static punctuation: string;
static className: string;
static enumName: string;
static interfaceName: string;
static moduleName: string;
static typeParameterName: string;
static typeAliasName: string;
static parameterName: string;
static docCommentTagName: string;
static jsxOpenTagName: string;
static jsxCloseTagName: string;
static jsxSelfClosingTagName: string;
static jsxAttribute: string;
static jsxText: string;
static jsxAttributeStringLiteralValue: string;
}
const enum ClassificationType {
comment = 1,
identifier = 2,
keyword = 3,
numericLiteral = 4,
operator = 5,
stringLiteral = 6,
regularExpressionLiteral = 7,
whiteSpace = 8,
text = 9,
punctuation = 10,
className = 11,
enumName = 12,
interfaceName = 13,
moduleName = 14,
typeParameterName = 15,
typeAliasName = 16,
parameterName = 17,
docCommentTagName = 18,
jsxOpenTagName = 19,
jsxCloseTagName = 20,
jsxSelfClosingTagName = 21,
jsxAttribute = 22,
jsxText = 23,
jsxAttributeStringLiteralValue = 24,
}
}
declare namespace ts {
const scanner: Scanner;
const emptyArray: any[];
const enum SemanticMeaning {
None = 0,
Value = 1,
Type = 2,
Namespace = 4,
All = 7,
}
function getMeaningFromDeclaration(node: Node): SemanticMeaning;
function getMeaningFromLocation(node: Node): SemanticMeaning;
function isCallExpressionTarget(node: Node): boolean;
function isNewExpressionTarget(node: Node): boolean;
function climbPastPropertyAccess(node: Node): Node;
function getTargetLabel(referenceNode: Node, labelName: string): Identifier;
function isJumpStatementTarget(node: Node): boolean;
function isLabelName(node: Node): boolean;
function isRightSideOfQualifiedName(node: Node): boolean;
function isRightSideOfPropertyAccess(node: Node): boolean;
function isNameOfModuleDeclaration(node: Node): boolean;
function isNameOfFunctionDeclaration(node: Node): boolean;
function isLiteralNameOfPropertyDeclarationOrIndexAccess(node: Node): boolean;
function isExpressionOfExternalModuleImportEqualsDeclaration(node: Node): boolean;
function isInsideComment(sourceFile: SourceFile, token: Node, position: number): boolean;
function getContainerNode(node: Node): Declaration;
function getNodeKind(node: Node): string;
function getStringLiteralTypeForNode(node: StringLiteral | LiteralTypeNode, typeChecker: TypeChecker): LiteralType;
function isThis(node: Node): boolean;
interface ListItemInfo {
listItemIndex: number;
list: Node;
}
function getLineStartPositionForPosition(position: number, sourceFile: SourceFile): number;
function rangeContainsRange(r1: TextRange, r2: TextRange): boolean;
function startEndContainsRange(start: number, end: number, range: TextRange): boolean;
function rangeContainsStartEnd(range: TextRange, start: number, end: number): boolean;
function rangeOverlapsWithStartEnd(r1: TextRange, start: number, end: number): boolean;
function startEndOverlapsWithStartEnd(start1: number, end1: number, start2: number, end2: number): boolean;
function positionBelongsToNode(candidate: Node, position: number, sourceFile: SourceFile): boolean;
function isCompletedNode(n: Node, sourceFile: SourceFile): boolean;
function findListItemInfo(node: Node): ListItemInfo;
function hasChildOfKind(n: Node, kind: SyntaxKind, sourceFile?: SourceFile): boolean;
function findChildOfKind(n: Node, kind: SyntaxKind, sourceFile?: SourceFile): Node;
function findContainingList(node: Node): Node;
function getTouchingWord(sourceFile: SourceFile, position: number, includeJsDocComment?: boolean): Node;
function getTouchingPropertyName(sourceFile: SourceFile, position: number, includeJsDocComment?: boolean): Node;
function getTouchingToken(sourceFile: SourceFile, position: number, includeItemAtEndPosition?: (n: Node) => boolean, includeJsDocComment?: boolean): Node;
function getTokenAtPosition(sourceFile: SourceFile, position: number, includeJsDocComment?: boolean): Node;
function findTokenOnLeftOfPosition(file: SourceFile, position: number): Node;
function findNextToken(previousToken: Node, parent: Node): Node;
function findPrecedingToken(position: number, sourceFile: SourceFile, startNode?: Node): Node;
function isInString(sourceFile: SourceFile, position: number): boolean;
function isInComment(sourceFile: SourceFile, position: number): boolean;
function isInsideJsxElementOrAttribute(sourceFile: SourceFile, position: number): boolean;
function isInTemplateString(sourceFile: SourceFile, position: number): boolean;
function isInCommentHelper(sourceFile: SourceFile, position: number, predicate?: (c: CommentRange) => boolean): boolean;
function hasDocComment(sourceFile: SourceFile, position: number): boolean;
function getJsDocTagAtPosition(sourceFile: SourceFile, position: number): JSDocTag;
function getNodeModifiers(node: Node): string;
function getTypeArgumentOrTypeParameterList(node: Node): NodeArray<Node>;
function isToken(n: Node): boolean;
function isWord(kind: SyntaxKind): boolean;
function isComment(kind: SyntaxKind): boolean;
function isStringOrRegularExpressionOrTemplateLiteral(kind: SyntaxKind): boolean;
function isPunctuation(kind: SyntaxKind): boolean;
function isInsideTemplateLiteral(node: LiteralExpression, position: number): boolean;
function isAccessibilityModifier(kind: SyntaxKind): boolean;
function compareDataObjects(dst: any, src: any): boolean;
function isArrayLiteralOrObjectLiteralDestructuringPattern(node: Node): boolean;
function hasTrailingDirectorySeparator(path: string): boolean;
function isInReferenceComment(sourceFile: SourceFile, position: number): boolean;
function isInNonReferenceComment(sourceFile: SourceFile, position: number): boolean;
}
declare namespace ts {
function isFirstDeclarationOfSymbolParameter(symbol: Symbol): boolean;
function symbolPart(text: string, symbol: Symbol): SymbolDisplayPart;
function displayPart(text: string, kind: SymbolDisplayPartKind): SymbolDisplayPart;
function spacePart(): SymbolDisplayPart;
function keywordPart(kind: SyntaxKind): SymbolDisplayPart;
function punctuationPart(kind: SyntaxKind): SymbolDisplayPart;
function operatorPart(kind: SyntaxKind): SymbolDisplayPart;
function textOrKeywordPart(text: string): SymbolDisplayPart;
function textPart(text: string): SymbolDisplayPart;
function getNewLineOrDefaultFromHost(host: LanguageServiceHost | LanguageServiceShimHost): string;
function lineBreakPart(): SymbolDisplayPart;
function mapToDisplayParts(writeDisplayParts: (writer: DisplayPartsSymbolWriter) => void): SymbolDisplayPart[];
function typeToDisplayParts(typechecker: TypeChecker, type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): SymbolDisplayPart[];
function symbolToDisplayParts(typeChecker: TypeChecker, symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): SymbolDisplayPart[];
function signatureToDisplayParts(typechecker: TypeChecker, signature: Signature, enclosingDeclaration?: Node, flags?: TypeFormatFlags): SymbolDisplayPart[];
function getDeclaredName(typeChecker: TypeChecker, symbol: Symbol, location: Node): string;
function isImportOrExportSpecifierName(location: Node): boolean;
function stripQuotes(name: string): string;
function scriptKindIs(fileName: string, host: LanguageServiceHost, ...scriptKinds: ScriptKind[]): boolean;
function getScriptKind(fileName: string, host?: LanguageServiceHost): ScriptKind;
function sanitizeConfigFile(configFileName: string, content: string): {
configJsonObject: any;
diagnostics: Diagnostic[];
};
}
declare namespace ts.BreakpointResolver {
function spanInSourceFileAtLocation(sourceFile: SourceFile, position: number): TextSpan;
}
declare namespace ts {
function createClassifier(): Classifier;
function getSemanticClassifications(typeChecker: TypeChecker, cancellationToken: CancellationToken, sourceFile: SourceFile, classifiableNames: Map<string>, span: TextSpan): ClassifiedSpan[];
function getEncodedSemanticClassifications(typeChecker: TypeChecker, cancellationToken: CancellationToken, sourceFile: SourceFile, classifiableNames: Map<string>, span: TextSpan): Classifications;
function getSyntacticClassifications(cancellationToken: CancellationToken, sourceFile: SourceFile, span: TextSpan): ClassifiedSpan[];
function getEncodedSyntacticClassifications(cancellationToken: CancellationToken, sourceFile: SourceFile, span: TextSpan): Classifications;
}
declare namespace ts.Completions {
function getCompletionsAtPosition(host: LanguageServiceHost, typeChecker: TypeChecker, log: (message: string) => void, compilerOptions: CompilerOptions, sourceFile: SourceFile, position: number): CompletionInfo;
function getCompletionEntryDetails(typeChecker: TypeChecker, log: (message: string) => void, compilerOptions: CompilerOptions, sourceFile: SourceFile, position: number, entryName: string): CompletionEntryDetails;
function getCompletionEntrySymbol(typeChecker: TypeChecker, log: (message: string) => void, compilerOptions: CompilerOptions, sourceFile: SourceFile, position: number, entryName: string): Symbol;
}
declare namespace ts.DocumentHighlights {
function getDocumentHighlights(typeChecker: TypeChecker, cancellationToken: CancellationToken, sourceFile: SourceFile, position: number, sourceFilesToSearch: SourceFile[]): DocumentHighlights[];
}
declare namespace ts {
interface DocumentRegistry {
acquireDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile;
acquireDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile;
updateDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile;
updateDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile;
getKeyForCompilationSettings(settings: CompilerOptions): DocumentRegistryBucketKey;
releaseDocument(fileName: string, compilationSettings: CompilerOptions): void;
releaseDocumentWithKey(path: Path, key: DocumentRegistryBucketKey): void;
reportStats(): string;
}
type DocumentRegistryBucketKey = string & {
__bucketKey: any;
};
function createDocumentRegistry(useCaseSensitiveFileNames?: boolean, currentDirectory?: string): DocumentRegistry;
}
declare namespace ts.FindAllReferences {
function findReferencedSymbols(typeChecker: TypeChecker, cancellationToken: CancellationToken, sourceFiles: SourceFile[], sourceFile: SourceFile, position: number, findInStrings: boolean, findInComments: boolean): ReferencedSymbol[];
function getReferencedSymbolsForNode(typeChecker: TypeChecker, cancellationToken: CancellationToken, node: Node, sourceFiles: SourceFile[], findInStrings: boolean, findInComments: boolean, implementations: boolean): ReferencedSymbol[];
function convertReferences(referenceSymbols: ReferencedSymbol[]): ReferenceEntry[];
function getReferenceEntriesForShorthandPropertyAssignment(node: Node, typeChecker: TypeChecker, result: ReferenceEntry[]): void;
function getReferenceEntryFromNode(node: Node): ReferenceEntry;
}
declare namespace ts.GoToDefinition {
function getDefinitionAtPosition(program: Program, sourceFile: SourceFile, position: number): DefinitionInfo[];
function getTypeDefinitionAtPosition(typeChecker: TypeChecker, sourceFile: SourceFile, position: number): DefinitionInfo[];
}
declare namespace ts.GoToImplementation {
function getImplementationAtPosition(typeChecker: TypeChecker, cancellationToken: CancellationToken, sourceFiles: SourceFile[], node: Node): ImplementationLocation[];
}
declare namespace ts.JsDoc {
function getJsDocCommentsFromDeclarations(declarations: Declaration[]): SymbolDisplayPart[];
function getAllJsDocCompletionEntries(): CompletionEntry[];
function getDocCommentTemplateAtPosition(newLine: string, sourceFile: SourceFile, position: number): TextInsertion;
}
declare namespace ts.NavigateTo {
function getNavigateToItems(sourceFiles: SourceFile[], checker: TypeChecker, cancellationToken: CancellationToken, searchValue: string, maxResultCount: number, excludeDtsFiles: boolean): NavigateToItem[];
}
declare namespace ts.NavigationBar {
function getNavigationBarItems(sourceFile: SourceFile): NavigationBarItem[];
function getNavigationTree(sourceFile: SourceFile): NavigationTree;
}
declare namespace ts.OutliningElementsCollector {
function collectElements(sourceFile: SourceFile): OutliningSpan[];
}
declare namespace ts {
enum PatternMatchKind {
exact = 0,
prefix = 1,
substring = 2,
camelCase = 3,
}
interface PatternMatch {
kind: PatternMatchKind;
camelCaseWeight?: number;
isCaseSensitive: boolean;
punctuationStripped: boolean;
}
interface PatternMatcher {
getMatchesForLastSegmentOfPattern(candidate: string): PatternMatch[];
getMatches(candidateContainers: string[], candidate: string): PatternMatch[];
patternContainsDots: boolean;
}
function createPatternMatcher(pattern: string): PatternMatcher;
function breakIntoCharacterSpans(identifier: string): TextSpan[];
function breakIntoWordSpans(identifier: string): TextSpan[];
}
declare namespace ts {
function preProcessFile(sourceText: string, readImportFiles?: boolean, detectJavaScriptImports?: boolean): PreProcessedFileInfo;
}
declare namespace ts.Rename {
function getRenameInfo(typeChecker: TypeChecker, defaultLibFileName: string, getCanonicalFileName: (fileName: string) => string, sourceFile: SourceFile, position: number): RenameInfo;
}
declare namespace ts.SignatureHelp {
const enum ArgumentListKind {
TypeArguments = 0,
CallArguments = 1,
TaggedTemplateArguments = 2,
}
interface ArgumentListInfo {
kind: ArgumentListKind;
invocation: CallLikeExpression;
argumentsSpan: TextSpan;
argumentIndex?: number;
argumentCount: number;
}
function getSignatureHelpItems(program: Program, sourceFile: SourceFile, position: number, cancellationToken: CancellationToken): SignatureHelpItems;
function getContainingArgumentInfo(node: Node, position: number, sourceFile: SourceFile): ArgumentListInfo;
}
declare namespace ts.SymbolDisplay {
function getSymbolKind(typeChecker: TypeChecker, symbol: Symbol, location: Node): string;
function getSymbolModifiers(symbol: Symbol): string;
function getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker: TypeChecker, symbol: Symbol, sourceFile: SourceFile, enclosingDeclaration: Node, location: Node, semanticMeaning?: SemanticMeaning): {
displayParts: SymbolDisplayPart[];
documentation: SymbolDisplayPart[];
symbolKind: string;
};
}
declare namespace ts {
interface TranspileOptions {
compilerOptions?: CompilerOptions;
fileName?: string;
reportDiagnostics?: boolean;
moduleName?: string;
renamedDependencies?: MapLike<string>;
}
interface TranspileOutput {
outputText: string;
diagnostics?: Diagnostic[];
sourceMapText?: string;
}
function transpileModule(input: string, transpileOptions: TranspileOptions): TranspileOutput;
function transpile(input: string, compilerOptions?: CompilerOptions, fileName?: string, diagnostics?: Diagnostic[], moduleName?: string): string;
}
declare namespace ts.formatting {
interface FormattingScanner {
advance(): void;
isOnToken(): boolean;
readTokenInfo(n: Node): TokenInfo;
getCurrentLeadingTrivia(): TextRangeWithKind[];
lastTrailingTriviaWasNewLine(): boolean;
skipToEndOf(node: Node): void;
close(): void;
}
function getFormattingScanner(sourceFile: SourceFile, startPos: number, endPos: number): FormattingScanner;
}
declare namespace ts.formatting {
class FormattingContext {
sourceFile: SourceFile;
formattingRequestKind: FormattingRequestKind;
currentTokenSpan: TextRangeWithKind;
nextTokenSpan: TextRangeWithKind;
contextNode: Node;
currentTokenParent: Node;
nextTokenParent: Node;
private contextNodeAllOnSameLine;
private nextNodeAllOnSameLine;
private tokensAreOnSameLine;
private contextNodeBlockIsOnOneLine;
private nextNodeBlockIsOnOneLine;
constructor(sourceFile: SourceFile, formattingRequestKind: FormattingRequestKind);
updateContext(currentRange: TextRangeWithKind, currentTokenParent: Node, nextRange: TextRangeWithKind, nextTokenParent: Node, commonParent: Node): void;
ContextNodeAllOnSameLine(): boolean;
NextNodeAllOnSameLine(): boolean;
TokensAreOnSameLine(): boolean;
ContextNodeBlockIsOnOneLine(): boolean;
NextNodeBlockIsOnOneLine(): boolean;
private NodeIsOnOneLine(node);
private BlockIsOnOneLine(node);
}
}
declare namespace ts.formatting {
const enum FormattingRequestKind {
FormatDocument = 0,
FormatSelection = 1,
FormatOnEnter = 2,
FormatOnSemicolon = 3,
FormatOnClosingCurlyBrace = 4,
}
}
declare namespace ts.formatting {
class Rule {
Descriptor: RuleDescriptor;
Operation: RuleOperation;
Flag: RuleFlags;
constructor(Descriptor: RuleDescriptor, Operation: RuleOperation, Flag?: RuleFlags);
toString(): string;
}
}
declare namespace ts.formatting {
const enum RuleAction {
Ignore = 1,
Space = 2,
NewLine = 4,
Delete = 8,
}
}
declare namespace ts.formatting {
class RuleDescriptor {
LeftTokenRange: Shared.TokenRange;
RightTokenRange: Shared.TokenRange;
constructor(LeftTokenRange: Shared.TokenRange, RightTokenRange: Shared.TokenRange);
toString(): string;
static create1(left: SyntaxKind, right: SyntaxKind): RuleDescriptor;
static create2(left: Shared.TokenRange, right: SyntaxKind): RuleDescriptor;
static create3(left: SyntaxKind, right: Shared.TokenRange): RuleDescriptor;
static create4(left: Shared.TokenRange, right: Shared.TokenRange): RuleDescriptor;
}
}
declare namespace ts.formatting {
const enum RuleFlags {
None = 0,
CanDeleteNewLines = 1,
}
}
declare namespace ts.formatting {
class RuleOperation {
Context: RuleOperationContext;
Action: RuleAction;
constructor(Context: RuleOperationContext, Action: RuleAction);
toString(): string;
static create1(action: RuleAction): RuleOperation;
static create2(context: RuleOperationContext, action: RuleAction): RuleOperation;
}
}
declare namespace ts.formatting {
class RuleOperationContext {
private customContextChecks;
constructor(...funcs: {
(context: FormattingContext): boolean;
}[]);
static Any: RuleOperationContext;
IsAny(): boolean;
InContext(context: FormattingContext): boolean;
}
}
declare namespace ts.formatting {
class Rules {
getRuleName(rule: Rule): string;
[name: string]: any;
IgnoreBeforeComment: Rule;
IgnoreAfterLineComment: Rule;
NoSpaceBeforeSemicolon: Rule;
NoSpaceBeforeColon: Rule;
NoSpaceBeforeQuestionMark: Rule;
SpaceAfterColon: Rule;
SpaceAfterQuestionMarkInConditionalOperator: Rule;
NoSpaceAfterQuestionMark: Rule;
SpaceAfterSemicolon: Rule;
SpaceAfterCloseBrace: Rule;
SpaceBetweenCloseBraceAndElse: Rule;
SpaceBetweenCloseBraceAndWhile: Rule;
NoSpaceAfterCloseBrace: Rule;
NoSpaceBeforeDot: Rule;
NoSpaceAfterDot: Rule;
NoSpaceBeforeOpenBracket: Rule;
NoSpaceAfterCloseBracket: Rule;
SpaceAfterOpenBrace: Rule;
SpaceBeforeCloseBrace: Rule;
NoSpaceAfterOpenBrace: Rule;
NoSpaceBeforeCloseBrace: Rule;
NoSpaceBetweenEmptyBraceBrackets: Rule;
NewLineAfterOpenBraceInBlockContext: Rule;
NewLineBeforeCloseBraceInBlockContext: Rule;
NoSpaceAfterUnaryPrefixOperator: Rule;
NoSpaceAfterUnaryPreincrementOperator: Rule;
NoSpaceAfterUnaryPredecrementOperator: Rule;
NoSpaceBeforeUnaryPostincrementOperator: Rule;
NoSpaceBeforeUnaryPostdecrementOperator: Rule;
SpaceAfterPostincrementWhenFollowedByAdd: Rule;
SpaceAfterAddWhenFollowedByUnaryPlus: Rule;
SpaceAfterAddWhenFollowedByPreincrement: Rule;
SpaceAfterPostdecrementWhenFollowedBySubtract: Rule;
SpaceAfterSubtractWhenFollowedByUnaryMinus: Rule;
SpaceAfterSubtractWhenFollowedByPredecrement: Rule;
NoSpaceBeforeComma: Rule;
SpaceAfterCertainKeywords: Rule;
SpaceAfterLetConstInVariableDeclaration: Rule;
NoSpaceBeforeOpenParenInFuncCall: Rule;
SpaceAfterFunctionInFuncDecl: Rule;
NoSpaceBeforeOpenParenInFuncDecl: Rule;
SpaceAfterVoidOperator: Rule;
NoSpaceBetweenReturnAndSemicolon: Rule;
SpaceBetweenStatements: Rule;
SpaceAfterTryFinally: Rule;
SpaceAfterGetSetInMember: Rule;
SpaceBeforeBinaryKeywordOperator: Rule;
SpaceAfterBinaryKeywordOperator: Rule;
NoSpaceAfterConstructor: Rule;
NoSpaceAfterModuleImport: Rule;
SpaceAfterCertainTypeScriptKeywords: Rule;
SpaceBeforeCertainTypeScriptKeywords: Rule;
SpaceAfterModuleName: Rule;
SpaceBeforeArrow: Rule;
SpaceAfterArrow: Rule;
NoSpaceAfterEllipsis: Rule;
NoSpaceAfterOptionalParameters: Rule;
NoSpaceBeforeOpenAngularBracket: Rule;
NoSpaceBetweenCloseParenAndAngularBracket: Rule;
NoSpaceAfterOpenAngularBracket: Rule;
NoSpaceBeforeCloseAngularBracket: Rule;
NoSpaceAfterCloseAngularBracket: Rule;
NoSpaceBetweenEmptyInterfaceBraceBrackets: Rule;
HighPriorityCommonRules: Rule[];
LowPriorityCommonRules: Rule[];
SpaceAfterComma: Rule;
NoSpaceAfterComma: Rule;
SpaceBeforeBinaryOperator: Rule;
SpaceAfterBinaryOperator: Rule;
NoSpaceBeforeBinaryOperator: Rule;
NoSpaceAfterBinaryOperator: Rule;
SpaceAfterKeywordInControl: Rule;
NoSpaceAfterKeywordInControl: Rule;
FunctionOpenBraceLeftTokenRange: Shared.TokenRange;
SpaceBeforeOpenBraceInFunction: Rule;
NewLineBeforeOpenBraceInFunction: Rule;
TypeScriptOpenBraceLeftTokenRange: Shared.TokenRange;
SpaceBeforeOpenBraceInTypeScriptDeclWithBlock: Rule;
NewLineBeforeOpenBraceInTypeScriptDeclWithBlock: Rule;
ControlOpenBraceLeftTokenRange: Shared.TokenRange;
SpaceBeforeOpenBraceInControl: Rule;
NewLineBeforeOpenBraceInControl: Rule;
SpaceAfterSemicolonInFor: Rule;
NoSpaceAfterSemicolonInFor: Rule;
SpaceAfterOpenParen: Rule;
SpaceBeforeCloseParen: Rule;
NoSpaceBetweenParens: Rule;
NoSpaceAfterOpenParen: Rule;
NoSpaceBeforeCloseParen: Rule;
SpaceAfterOpenBracket: Rule;
SpaceBeforeCloseBracket: Rule;
NoSpaceBetweenBrackets: Rule;
NoSpaceAfterOpenBracket: Rule;
NoSpaceBeforeCloseBracket: Rule;
SpaceAfterAnonymousFunctionKeyword: Rule;
NoSpaceAfterAnonymousFunctionKeyword: Rule;
SpaceBeforeAt: Rule;
NoSpaceAfterAt: Rule;
SpaceAfterDecorator: Rule;
NoSpaceBetweenFunctionKeywordAndStar: Rule;
SpaceAfterStarInGeneratorDeclaration: Rule;
NoSpaceBetweenYieldKeywordAndStar: Rule;
SpaceBetweenYieldOrYieldStarAndOperand: Rule;
SpaceBetweenAsyncAndOpenParen: Rule;
SpaceBetweenAsyncAndFunctionKeyword: Rule;
NoSpaceBetweenTagAndTemplateString: Rule;
NoSpaceAfterTemplateHeadAndMiddle: Rule;
SpaceAfterTemplateHeadAndMiddle: Rule;
NoSpaceBeforeTemplateMiddleAndTail: Rule;
SpaceBeforeTemplateMiddleAndTail: Rule;
NoSpaceAfterOpenBraceInJsxExpression: Rule;
SpaceAfterOpenBraceInJsxExpression: Rule;
NoSpaceBeforeCloseBraceInJsxExpression: Rule;
SpaceBeforeCloseBraceInJsxExpression: Rule;
SpaceBeforeJsxAttribute: Rule;
SpaceBeforeSlashInJsxOpeningElement: Rule;
NoSpaceBeforeGreaterThanTokenInJsxOpeningElement: Rule;
NoSpaceBeforeEqualInJsxAttribute: Rule;
NoSpaceAfterEqualInJsxAttribute: Rule;
NoSpaceAfterTypeAssertion: Rule;
SpaceAfterTypeAssertion: Rule;
constructor();
static IsForContext(context: FormattingContext): boolean;
static IsNotForContext(context: FormattingContext): boolean;
static IsBinaryOpContext(context: FormattingContext): boolean;
static IsNotBinaryOpContext(context: FormattingContext): boolean;
static IsConditionalOperatorContext(context: FormattingContext): boolean;
static IsSameLineTokenOrBeforeMultilineBlockContext(context: FormattingContext): boolean;
static IsBeforeMultilineBlockContext(context: FormattingContext): boolean;
static IsMultilineBlockContext(context: FormattingContext): boolean;
static IsSingleLineBlockContext(context: FormattingContext): boolean;
static IsBlockContext(context: FormattingContext): boolean;
static IsBeforeBlockContext(context: FormattingContext): boolean;
static NodeIsBlockContext(node: Node): boolean;
static IsFunctionDeclContext(context: FormattingContext): boolean;
static IsFunctionDeclarationOrFunctionExpressionContext(context: FormattingContext): boolean;
static IsTypeScriptDeclWithBlockContext(context: FormattingContext): boolean;
static NodeIsTypeScriptDeclWithBlockContext(node: Node): boolean;
static IsAfterCodeBlockContext(context: FormattingContext): boolean;
static IsControlDeclContext(context: FormattingContext): boolean;
static IsObjectContext(context: FormattingContext): boolean;
static IsFunctionCallContext(context: FormattingContext): boolean;
static IsNewContext(context: FormattingContext): boolean;
static IsFunctionCallOrNewContext(context: FormattingContext): boolean;
static IsPreviousTokenNotComma(context: FormattingContext): boolean;
static IsNextTokenNotCloseBracket(context: FormattingContext): boolean;
static IsArrowFunctionContext(context: FormattingContext): boolean;
static IsNonJsxSameLineTokenContext(context: FormattingContext): boolean;
static IsNonJsxElementContext(context: FormattingContext): boolean;
static IsJsxExpressionContext(context: FormattingContext): boolean;
static IsNextTokenParentJsxAttribute(context: FormattingContext): boolean;
static IsJsxAttributeContext(context: FormattingContext): boolean;
static IsJsxSelfClosingElementContext(context: FormattingContext): boolean;
static IsNotBeforeBlockInFunctionDeclarationContext(context: FormattingContext): boolean;
static IsEndOfDecoratorContextOnSameLine(context: FormattingContext): boolean;
static NodeIsInDecoratorContext(node: Node): boolean;
static IsStartOfVariableDeclarationList(context: FormattingContext): boolean;
static IsNotFormatOnEnter(context: FormattingContext): boolean;
static IsModuleDeclContext(context: FormattingContext): boolean;
static IsObjectTypeContext(context: FormattingContext): boolean;
static IsTypeArgumentOrParameterOrAssertion(token: TextRangeWithKind, parent: Node): boolean;
static IsTypeArgumentOrParameterOrAssertionContext(context: FormattingContext): boolean;
static IsTypeAssertionContext(context: FormattingContext): boolean;
static IsVoidOpContext(context: FormattingContext): boolean;
static IsYieldOrYieldStarWithOperand(context: FormattingContext): boolean;
}
}
declare namespace ts.formatting {
class RulesMap {
map: RulesBucket[];
mapRowLength: number;
constructor();
static create(rules: Rule[]): RulesMap;
Initialize(rules: Rule[]): RulesBucket[];
FillRules(rules: Rule[], rulesBucketConstructionStateList: RulesBucketConstructionState[]): void;
private GetRuleBucketIndex(row, column);
private FillRule(rule, rulesBucketConstructionStateList);
GetRule(context: FormattingContext): Rule;
}
enum RulesPosition {
IgnoreRulesSpecific = 0,
IgnoreRulesAny,
ContextRulesSpecific,
ContextRulesAny,
NoContextRulesSpecific,
NoContextRulesAny,
}
class RulesBucketConstructionState {
private rulesInsertionIndexBitmap;
constructor();
GetInsertionIndex(maskPosition: RulesPosition): number;
IncreaseInsertionIndex(maskPosition: RulesPosition): void;
}
class RulesBucket {
private rules;
constructor();
Rules(): Rule[];
AddRule(rule: Rule, specificTokens: boolean, constructionState: RulesBucketConstructionState[], rulesBucketIndex: number): void;
}
}
declare namespace ts.formatting {
namespace Shared {
interface ITokenAccess {
GetTokens(): SyntaxKind[];
Contains(token: SyntaxKind): boolean;
}
class TokenRangeAccess implements ITokenAccess {
private tokens;
constructor(from: SyntaxKind, to: SyntaxKind, except: SyntaxKind[]);
GetTokens(): SyntaxKind[];
Contains(token: SyntaxKind): boolean;
}
class TokenValuesAccess implements ITokenAccess {
private tokens;
constructor(tks: SyntaxKind[]);
GetTokens(): SyntaxKind[];
Contains(token: SyntaxKind): boolean;
}
class TokenSingleValueAccess implements ITokenAccess {
token: SyntaxKind;
constructor(token: SyntaxKind);
GetTokens(): SyntaxKind[];
Contains(tokenValue: SyntaxKind): boolean;
}
class TokenAllAccess implements ITokenAccess {
GetTokens(): SyntaxKind[];
Contains(): boolean;
toString(): string;
}
class TokenRange {
tokenAccess: ITokenAccess;
constructor(tokenAccess: ITokenAccess);
static FromToken(token: SyntaxKind): TokenRange;
static FromTokens(tokens: SyntaxKind[]): TokenRange;
static FromRange(f: SyntaxKind, to: SyntaxKind, except?: SyntaxKind[]): TokenRange;
static AllTokens(): TokenRange;
GetTokens(): SyntaxKind[];
Contains(token: SyntaxKind): boolean;
toString(): string;
static Any: TokenRange;
static AnyIncludingMultilineComments: TokenRange;
static Keywords: TokenRange;
static BinaryOperators: TokenRange;
static BinaryKeywordOperators: TokenRange;
static UnaryPrefixOperators: TokenRange;
static UnaryPrefixExpressions: TokenRange;
static UnaryPreincrementExpressions: TokenRange;
static UnaryPostincrementExpressions: TokenRange;
static UnaryPredecrementExpressions: TokenRange;
static UnaryPostdecrementExpressions: TokenRange;
static Comments: TokenRange;
static TypeNames: TokenRange;
}
}
}
declare namespace ts.formatting {
class RulesProvider {
private globalRules;
private options;
private activeRules;
private rulesMap;
constructor();
getRuleName(rule: Rule): string;
getRuleByName(name: string): Rule;
getRulesMap(): RulesMap;
ensureUpToDate(options: ts.FormatCodeSettings): void;
private createActiveRules(options);
}
}
declare namespace ts.formatting {
interface TextRangeWithKind extends TextRange {
kind: SyntaxKind;
}
interface TokenInfo {
leadingTrivia: TextRangeWithKind[];
token: TextRangeWithKind;
trailingTrivia: TextRangeWithKind[];
}
function formatOnEnter(position: number, sourceFile: SourceFile, rulesProvider: RulesProvider, options: FormatCodeSettings): TextChange[];
function formatOnSemicolon(position: number, sourceFile: SourceFile, rulesProvider: RulesProvider, options: FormatCodeSettings): TextChange[];
function formatOnClosingCurly(position: number, sourceFile: SourceFile, rulesProvider: RulesProvider, options: FormatCodeSettings): TextChange[];
function formatDocument(sourceFile: SourceFile, rulesProvider: RulesProvider, options: FormatCodeSettings): TextChange[];
function formatSelection(start: number, end: number, sourceFile: SourceFile, rulesProvider: RulesProvider, options: FormatCodeSettings): TextChange[];
function getIndentationString(indentation: number, options: EditorSettings): string;
}
declare namespace ts.formatting {
namespace SmartIndenter {
function getIndentation(position: number, sourceFile: SourceFile, options: EditorSettings): number;
function getIndentationForNode(n: Node, ignoreActualIndentationRange: TextRange, sourceFile: SourceFile, options: EditorSettings): number;
function getBaseIndentation(options: EditorSettings): number;
function childStartsOnTheSameLineWithElseInIfStatement(parent: Node, child: TextRangeWithKind, childStartLine: number, sourceFile: SourceFile): boolean;
function findFirstNonWhitespaceCharacterAndColumn(startPos: number, endPos: number, sourceFile: SourceFile, options: EditorSettings): {
column: number;
character: number;
};
function findFirstNonWhitespaceColumn(startPos: number, endPos: number, sourceFile: SourceFile, options: EditorSettings): number;
function nodeWillIndentChild(parent: TextRangeWithKind, child: TextRangeWithKind, indentByDefault: boolean): boolean;
function shouldIndentChildNode(parent: TextRangeWithKind, child?: TextRangeWithKind): boolean;
}
}
declare namespace ts {
interface CodeFix {
errorCodes: number[];
getCodeActions(context: CodeFixContext): CodeAction[] | undefined;
}
interface CodeFixContext {
errorCode: number;
sourceFile: SourceFile;
span: TextSpan;
program: Program;
newLineCharacter: string;
}
namespace codefix {
function registerCodeFix(action: CodeFix): void;
function getSupportedErrorCodes(): string[];
function getFixes(context: CodeFixContext): CodeAction[];
}
}
declare namespace ts.codefix {
}
declare namespace ts {
const servicesVersion = "0.5";
interface DisplayPartsSymbolWriter extends SymbolWriter {
displayParts(): SymbolDisplayPart[];
}
function toEditorSettings(options: FormatCodeOptions | FormatCodeSettings): FormatCodeSettings;
function toEditorSettings(options: EditorOptions | EditorSettings): EditorSettings;
function displayPartsToString(displayParts: SymbolDisplayPart[]): string;
function getDefaultCompilerOptions(): CompilerOptions;
function getSupportedCodeFixes(): string[];
function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean, scriptKind?: ScriptKind): SourceFile;
let disableIncrementalParsing: boolean;
function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile;
function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService;
function getNameTable(sourceFile: SourceFile): Map<number>;
function getDefaultLibFilePath(options: CompilerOptions): string;
}
declare namespace ts.server {
class ScriptInfo {
private readonly host;
readonly fileName: NormalizedPath;
readonly scriptKind: ScriptKind;
isOpen: boolean;
hasMixedContent: boolean;
readonly containingProjects: Project[];
private formatCodeSettings;
readonly path: Path;
private fileWatcher;
private svc;
constructor(host: ServerHost, fileName: NormalizedPath, content: string, scriptKind: ScriptKind, isOpen?: boolean, hasMixedContent?: boolean);
getFormatCodeSettings(): FormatCodeSettings;
attachToProject(project: Project): boolean;
isAttached(project: Project): boolean;
detachFromProject(project: Project): void;
detachAllProjects(): void;
getDefaultProject(): Project;
setFormatOptions(formatSettings: FormatCodeSettings): void;
setWatcher(watcher: FileWatcher): void;
stopWatcher(): void;
getLatestVersion(): string;
reload(script: string): void;
saveTo(fileName: string): void;
reloadFromFile(tempFileName?: NormalizedPath): void;
snap(): LineIndexSnapshot;
getLineInfo(line: number): ILineInfo;
editContent(start: number, end: number, newText: string): void;
markContainingProjectsAsDirty(): void;
lineToTextSpan(line: number): TextSpan;
lineOffsetToPosition(line: number, offset: number): number;
positionToLineOffset(position: number): ILineInfo;
}
}
declare namespace ts.server {
class LSHost implements ts.LanguageServiceHost, ModuleResolutionHost, ServerLanguageServiceHost {
private readonly host;
private readonly project;
private readonly cancellationToken;
private compilationSettings;
private readonly resolvedModuleNames;
private readonly resolvedTypeReferenceDirectives;
private readonly getCanonicalFileName;
private filesWithChangedSetOfUnresolvedImports;
private readonly resolveModuleName;
readonly trace: (s: string) => void;
readonly realpath?: (path: string) => string;
constructor(host: ServerHost, project: Project, cancellationToken: HostCancellationToken);
startRecordingFilesWithChangedResolutions(): void;
finishRecordingFilesWithChangedResolutions(): Path[];
private resolveNamesWithLocalCache<T, R>(names, containingFile, cache, loader, getResult, getResultFileName, logChanges);
getProjectVersion(): string;
getCompilationSettings(): CompilerOptions;
useCaseSensitiveFileNames(): boolean;
getCancellationToken(): HostCancellationToken;
resolveTypeReferenceDirectives(typeDirectiveNames: string[], containingFile: string): ResolvedTypeReferenceDirective[];
resolveModuleNames(moduleNames: string[], containingFile: string): ResolvedModuleFull[];
getDefaultLibFileName(): string;
getScriptSnapshot(filename: string): ts.IScriptSnapshot;
getScriptFileNames(): string[];
getTypeRootsVersion(): number;
getScriptKind(fileName: string): ScriptKind;
getScriptVersion(filename: string): string;
getCurrentDirectory(): string;
resolvePath(path: string): string;
fileExists(path: string): boolean;
readFile(fileName: string): string;
directoryExists(path: string): boolean;
readDirectory(path: string, extensions?: string[], exclude?: string[], include?: string[]): string[];
getDirectories(path: string): string[];
notifyFileRemoved(info: ScriptInfo): void;
setCompilationSettings(opt: ts.CompilerOptions): void;
}
}
declare namespace ts.server {
interface ITypingsInstaller {
enqueueInstallTypingsRequest(p: Project, typingOptions: TypingOptions, unresolvedImports: SortedReadonlyArray<string>): void;
attach(projectService: ProjectService): void;
onProjectClosed(p: Project): void;
readonly globalTypingsCacheLocation: string;
}
const nullTypingsInstaller: ITypingsInstaller;
class TypingsCache {
private readonly installer;
private readonly perProjectCache;
constructor(installer: ITypingsInstaller);
getTypingsForProject(project: Project, unresolvedImports: SortedReadonlyArray<string>, forceRefresh: boolean): SortedReadonlyArray<string>;
updateTypingsForProject(projectName: string, compilerOptions: CompilerOptions, typingOptions: TypingOptions, unresolvedImports: SortedReadonlyArray<string>, newTypings: string[]): void;
deleteTypingsForProject(projectName: string): void;
onProjectClosed(project: Project): void;
}
}
declare namespace ts.server {
function shouldEmitFile(scriptInfo: ScriptInfo): boolean;
class BuilderFileInfo {
readonly scriptInfo: ScriptInfo;
readonly project: Project;
private lastCheckedShapeSignature;
constructor(scriptInfo: ScriptInfo, project: Project);
isExternalModuleOrHasOnlyAmbientExternalModules(): boolean;
private containsOnlyAmbientModules(sourceFile);
private computeHash(text);
private getSourceFile();
updateShapeSignature(): boolean;
}
interface Builder {
readonly project: Project;
getFilesAffectedBy(scriptInfo: ScriptInfo): string[];
onProjectUpdateGraph(): void;
emitFile(scriptInfo: ScriptInfo, writeFile: (path: string, data: string, writeByteOrderMark?: boolean) => void): boolean;
}
function createBuilder(project: Project): Builder;
}
declare namespace ts.server {
enum ProjectKind {
Inferred = 0,
Configured = 1,
External = 2,
}
function allRootFilesAreJsOrDts(project: Project): boolean;
function allFilesAreJsOrDts(project: Project): boolean;
interface ProjectFilesWithTSDiagnostics extends protocol.ProjectFiles {
projectErrors: Diagnostic[];
}
class UnresolvedImportsMap {
readonly perFileMap: FileMap<ReadonlyArray<string>>;
private version;
clear(): void;
getVersion(): number;
remove(path: Path): void;
get(path: Path): ReadonlyArray<string>;
set(path: Path, value: ReadonlyArray<string>): void;
}
abstract class Project {
readonly projectKind: ProjectKind;
readonly projectService: ProjectService;
private documentRegistry;
languageServiceEnabled: boolean;
private compilerOptions;
compileOnSaveEnabled: boolean;
private rootFiles;
private rootFilesMap;
private lsHost;
private program;
private cachedUnresolvedImportsPerFile;
private lastCachedUnresolvedImportsList;
private languageService;
builder: Builder;
private lastReportedFileNames;
private lastReportedVersion;
private projectStructureVersion;
private projectStateVersion;
private typingFiles;
protected projectErrors: Diagnostic[];
typesVersion: number;
isNonTsProject(): boolean;
isJsOnlyProject(): boolean;
getCachedUnresolvedImportsPerFile_TestOnly(): UnresolvedImportsMap;
constructor(projectKind: ProjectKind, projectService: ProjectService, documentRegistry: ts.DocumentRegistry, hasExplicitListOfFiles: boolean, languageServiceEnabled: boolean, compilerOptions: CompilerOptions, compileOnSaveEnabled: boolean);
getProjectErrors(): Diagnostic[];
getLanguageService(ensureSynchronized?: boolean): LanguageService;
getCompileOnSaveAffectedFileList(scriptInfo: ScriptInfo): string[];
getProjectVersion(): string;
enableLanguageService(): void;
disableLanguageService(): void;
abstract getProjectName(): string;
abstract getProjectRootPath(): string | undefined;
abstract getTypingOptions(): TypingOptions;
getSourceFile(path: Path): SourceFile;
updateTypes(): void;
close(): void;
getCompilerOptions(): CompilerOptions;
hasRoots(): boolean;
getRootFiles(): NormalizedPath[];
getRootFilesLSHost(): string[];
getRootScriptInfos(): ScriptInfo[];
getScriptInfos(): ScriptInfo[];
getFileEmitOutput(info: ScriptInfo, emitOnlyDtsFiles: boolean): EmitOutput;
getFileNames(excludeFilesFromExternalLibraries?: boolean): NormalizedPath[];
getAllEmittableFiles(): string[];
containsScriptInfo(info: ScriptInfo): boolean;
containsFile(filename: NormalizedPath, requireOpen?: boolean): boolean;
isRoot(info: ScriptInfo): boolean;
addRoot(info: ScriptInfo): void;
removeFile(info: ScriptInfo, detachFromProject?: boolean): void;
markAsDirty(): void;
private extractUnresolvedImportsFromSourceFile(file, result);
updateGraph(): boolean;
private setTypings(typings);
private updateGraphWorker();
getScriptInfoLSHost(fileName: string): ScriptInfo;
getScriptInfoForNormalizedPath(fileName: NormalizedPath): ScriptInfo;
getScriptInfo(uncheckedFileName: string): ScriptInfo;
filesToString(): string;
setCompilerOptions(compilerOptions: CompilerOptions): void;
reloadScript(filename: NormalizedPath, tempFileName?: NormalizedPath): boolean;
getChangesSinceVersion(lastKnownVersion?: number): ProjectFilesWithTSDiagnostics;
getReferencedFiles(path: Path): Path[];
private removeRootFileIfNecessary(info);
}
class InferredProject extends Project {
private static NextId;
private readonly inferredProjectName;
directoriesWatchedForTsconfig: string[];
constructor(projectService: ProjectService, documentRegistry: ts.DocumentRegistry, languageServiceEnabled: boolean, compilerOptions: CompilerOptions);
getProjectName(): string;
getProjectRootPath(): string;
close(): void;
getTypingOptions(): TypingOptions;
}
class ConfiguredProject extends Project {
readonly configFileName: NormalizedPath;
private wildcardDirectories;
compileOnSaveEnabled: boolean;
private typingOptions;
private projectFileWatcher;
private directoryWatcher;
private directoriesWatchedForWildcards;
private typeRootsWatchers;
openRefCount: number;
constructor(configFileName: NormalizedPath, projectService: ProjectService, documentRegistry: ts.DocumentRegistry, hasExplicitListOfFiles: boolean, compilerOptions: CompilerOptions, wildcardDirectories: Map<WatchDirectoryFlags>, languageServiceEnabled: boolean, compileOnSaveEnabled: boolean);
getProjectRootPath(): string;
setProjectErrors(projectErrors: Diagnostic[]): void;
setTypingOptions(newTypingOptions: TypingOptions): void;
getTypingOptions(): TypingOptions;
getProjectName(): NormalizedPath;
watchConfigFile(callback: (project: ConfiguredProject) => void): void;
watchTypeRoots(callback: (project: ConfiguredProject, path: string) => void): void;
watchConfigDirectory(callback: (project: ConfiguredProject, path: string) => void): void;
watchWildcards(callback: (project: ConfiguredProject, path: string) => void): void;
stopWatchingDirectory(): void;
close(): void;
addOpenRef(): void;
deleteOpenRef(): number;
getEffectiveTypeRoots(): string[];
}
class ExternalProject extends Project {
readonly externalProjectName: string;
compileOnSaveEnabled: boolean;
private readonly projectFilePath;
private typingOptions;
constructor(externalProjectName: string, projectService: ProjectService, documentRegistry: ts.DocumentRegistry, compilerOptions: CompilerOptions, languageServiceEnabled: boolean, compileOnSaveEnabled: boolean, projectFilePath?: string);
getProjectRootPath(): string;
getTypingOptions(): TypingOptions;
setProjectErrors(projectErrors: Diagnostic[]): void;
setTypingOptions(newTypingOptions: TypingOptions): void;
getProjectName(): string;
}
}
declare namespace ts.server {
const maxProgramSizeForNonTsFiles: number;
type ProjectServiceEvent = {
eventName: "context";
data: {
project: Project;
fileName: NormalizedPath;
};
} | {
eventName: "configFileDiag";
data: {
triggerFile: string;
configFileName: string;
diagnostics: Diagnostic[];
};
};
interface ProjectServiceEventHandler {
(event: ProjectServiceEvent): void;
}
function convertFormatOptions(protocolOptions: protocol.FormatCodeSettings): FormatCodeSettings;
function convertCompilerOptions(protocolOptions: protocol.ExternalProjectCompilerOptions): CompilerOptions & protocol.CompileOnSaveMixin;
function tryConvertScriptKindName(scriptKindName: protocol.ScriptKindName | ScriptKind): ScriptKind;
function convertScriptKindName(scriptKindName: protocol.ScriptKindName): ScriptKind;
function combineProjectOutput<T>(projects: Project[], action: (project: Project) => T[], comparer?: (a: T, b: T) => number, areEqual?: (a: T, b: T) => boolean): T[];
interface HostConfiguration {
formatCodeOptions: FormatCodeSettings;
hostInfo: string;
}
interface OpenConfiguredProjectResult {
configFileName?: string;
configFileErrors?: Diagnostic[];
}
class ProjectService {
readonly host: ServerHost;
readonly logger: Logger;
readonly cancellationToken: HostCancellationToken;
readonly useSingleInferredProject: boolean;
readonly typingsInstaller: ITypingsInstaller;
private readonly eventHandler;
readonly typingsCache: TypingsCache;
private readonly documentRegistry;
private readonly filenameToScriptInfo;
private readonly externalProjectToConfiguredProjectMap;
readonly externalProjects: ExternalProject[];
readonly inferredProjects: InferredProject[];
readonly configuredProjects: ConfiguredProject[];
readonly openFiles: ScriptInfo[];
private compilerOptionsForInferredProjects;
private compileOnSaveForInferredProjects;
private readonly directoryWatchers;
private readonly throttledOperations;
private readonly hostConfiguration;
private changedFiles;
private toCanonicalFileName;
lastDeletedFile: ScriptInfo;
constructor(host: ServerHost, logger: Logger, cancellationToken: HostCancellationToken, useSingleInferredProject: boolean, typingsInstaller?: ITypingsInstaller, eventHandler?: ProjectServiceEventHandler);
getChangedFiles_TestOnly(): ScriptInfo[];
ensureInferredProjectsUpToDate_TestOnly(): void;
getCompilerOptionsForInferredProjects(): CompilerOptions;
updateTypingsForProject(response: SetTypings | InvalidateCachedTypings): void;
setCompilerOptionsForInferredProjects(projectCompilerOptions: protocol.ExternalProjectCompilerOptions): void;
stopWatchingDirectory(directory: string): void;
findProject(projectName: string): Project;
getDefaultProjectForFile(fileName: NormalizedPath, refreshInferredProjects: boolean): Project;
private ensureInferredProjectsUpToDate();
private findContainingExternalProject(fileName);
getFormatCodeOptions(file?: NormalizedPath): FormatCodeSettings;
private updateProjectGraphs(projects);
private onSourceFileChanged(fileName);
private handleDeletedFile(info);
private onTypeRootFileChanged(project, fileName);
private onSourceFileInDirectoryChangedForConfiguredProject(project, fileName);
private handleChangeInSourceFileForConfiguredProject(project, triggerFile);
private onConfigChangedForConfiguredProject(project);
private onConfigFileAddedForInferredProject(fileName);
private getCanonicalFileName(fileName);
private removeProject(project);
private assignScriptInfoToInferredProjectIfNecessary(info, addToListOfOpenFiles);
private closeOpenFile(info);
private openOrUpdateConfiguredProjectForFile(fileName);
private findConfigFile(searchPath);
private printProjects();
private findConfiguredProjectByProjectName(configFileName);
private findExternalProjectByProjectName(projectFileName);
private convertConfigFileContentToProjectOptions(configFilename);
private exceededTotalSizeLimitForNonTsFiles<T>(options, fileNames, propertyReader);
private createAndAddExternalProject(projectFileName, files, options, typingOptions);
private reportConfigFileDiagnostics(configFileName, diagnostics, triggerFile);
private createAndAddConfiguredProject(configFileName, projectOptions, configFileErrors, clientFileName?);
private watchConfigDirectoryForProject(project, options);
private addFilesToProjectAndUpdateGraph<T>(project, files, propertyReader, clientFileName, typingOptions, configFileErrors);
private openConfigFile(configFileName, clientFileName?);
private updateNonInferredProject<T>(project, newUncheckedFiles, propertyReader, newOptions, newTypingOptions, compileOnSave, configFileErrors);
private updateConfiguredProject(project);
createInferredProjectWithRootFileIfNecessary(root: ScriptInfo): InferredProject;
getOrCreateScriptInfo(uncheckedFileName: string, openedByClient: boolean, fileContent?: string, scriptKind?: ScriptKind): ScriptInfo;
getScriptInfo(uncheckedFileName: string): ScriptInfo;
getOrCreateScriptInfoForNormalizedPath(fileName: NormalizedPath, openedByClient: boolean, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean): ScriptInfo;
getScriptInfoForNormalizedPath(fileName: NormalizedPath): ScriptInfo;
getScriptInfoForPath(fileName: Path): ScriptInfo;
setHostConfiguration(args: protocol.ConfigureRequestArguments): void;
closeLog(): void;
reloadProjects(): void;
refreshInferredProjects(): void;
openClientFile(fileName: string, fileContent?: string, scriptKind?: ScriptKind): OpenConfiguredProjectResult;
openClientFileWithNormalizedPath(fileName: NormalizedPath, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean): OpenConfiguredProjectResult;
closeClientFile(uncheckedFileName: string): void;
private collectChanges(lastKnownProjectVersions, currentProjects, result);
synchronizeProjectList(knownProjects: protocol.ProjectVersionInfo[]): ProjectFilesWithTSDiagnostics[];
applyChangesInOpenFiles(openFiles: protocol.ExternalFile[], changedFiles: protocol.ChangedOpenFile[], closedFiles: string[]): void;
private closeConfiguredProject(configFile);
closeExternalProject(uncheckedFileName: string, suppressRefresh?: boolean): void;
openExternalProject(proj: protocol.ExternalProject): void;
}
}
declare namespace ts.server {
interface PendingErrorCheck {
fileName: NormalizedPath;
project: Project;
}
interface EventSender {
event(payload: any, eventName: string): void;
}
namespace CommandNames {
const Brace: protocol.CommandTypes.Brace;
const BraceFull: protocol.CommandTypes.BraceFull;
const BraceCompletion: protocol.CommandTypes.BraceCompletion;
const Change: protocol.CommandTypes.Change;
const Close: protocol.CommandTypes.Close;
const Completions: protocol.CommandTypes.Completions;
const CompletionsFull: protocol.CommandTypes.CompletionsFull;
const CompletionDetails: protocol.CommandTypes.CompletionDetails;
const CompileOnSaveAffectedFileList: protocol.CommandTypes.CompileOnSaveAffectedFileList;
const CompileOnSaveEmitFile: protocol.CommandTypes.CompileOnSaveEmitFile;
const Configure: protocol.CommandTypes.Configure;
const Definition: protocol.CommandTypes.Definition;
const DefinitionFull: protocol.CommandTypes.DefinitionFull;
const Exit: protocol.CommandTypes.Exit;
const Format: protocol.CommandTypes.Format;
const Formatonkey: protocol.CommandTypes.Formatonkey;
const FormatFull: protocol.CommandTypes.FormatFull;
const FormatonkeyFull: protocol.CommandTypes.FormatonkeyFull;
const FormatRangeFull: protocol.CommandTypes.FormatRangeFull;
const Geterr: protocol.CommandTypes.Geterr;
const GeterrForProject: protocol.CommandTypes.GeterrForProject;
const Implementation: protocol.CommandTypes.Implementation;
const ImplementationFull: protocol.CommandTypes.ImplementationFull;
const SemanticDiagnosticsSync: protocol.CommandTypes.SemanticDiagnosticsSync;
const SyntacticDiagnosticsSync: protocol.CommandTypes.SyntacticDiagnosticsSync;
const NavBar: protocol.CommandTypes.NavBar;
const NavBarFull: protocol.CommandTypes.NavBarFull;
const NavTree: protocol.CommandTypes.NavTree;
const NavTreeFull: protocol.CommandTypes.NavTreeFull;
const Navto: protocol.CommandTypes.Navto;
const NavtoFull: protocol.CommandTypes.NavtoFull;
const Occurrences: protocol.CommandTypes.Occurrences;
const DocumentHighlights: protocol.CommandTypes.DocumentHighlights;
const DocumentHighlightsFull: protocol.CommandTypes.DocumentHighlightsFull;
const Open: protocol.CommandTypes.Open;
const Quickinfo: protocol.CommandTypes.Quickinfo;
const QuickinfoFull: protocol.CommandTypes.QuickinfoFull;
const References: protocol.CommandTypes.References;
const ReferencesFull: protocol.CommandTypes.ReferencesFull;
const Reload: protocol.CommandTypes.Reload;
const Rename: protocol.CommandTypes.Rename;
const RenameInfoFull: protocol.CommandTypes.RenameInfoFull;
const RenameLocationsFull: protocol.CommandTypes.RenameLocationsFull;
const Saveto: protocol.CommandTypes.Saveto;
const SignatureHelp: protocol.CommandTypes.SignatureHelp;
const SignatureHelpFull: protocol.CommandTypes.SignatureHelpFull;
const TypeDefinition: protocol.CommandTypes.TypeDefinition;
const ProjectInfo: protocol.CommandTypes.ProjectInfo;
const ReloadProjects: protocol.CommandTypes.ReloadProjects;
const Unknown: protocol.CommandTypes.Unknown;
const OpenExternalProject: protocol.CommandTypes.OpenExternalProject;
const OpenExternalProjects: protocol.CommandTypes.OpenExternalProjects;
const CloseExternalProject: protocol.CommandTypes.CloseExternalProject;
const SynchronizeProjectList: protocol.CommandTypes.SynchronizeProjectList;
const ApplyChangedToOpenFiles: protocol.CommandTypes.ApplyChangedToOpenFiles;
const EncodedSemanticClassificationsFull: protocol.CommandTypes.EncodedSemanticClassificationsFull;
const Cleanup: protocol.CommandTypes.Cleanup;
const OutliningSpans: protocol.CommandTypes.OutliningSpans;
const TodoComments: protocol.CommandTypes.TodoComments;
const Indentation: protocol.CommandTypes.Indentation;
const DocCommentTemplate: protocol.CommandTypes.DocCommentTemplate;
const CompilerOptionsDiagnosticsFull: protocol.CommandTypes.CompilerOptionsDiagnosticsFull;
const NameOrDottedNameSpan: protocol.CommandTypes.NameOrDottedNameSpan;
const BreakpointStatement: protocol.CommandTypes.BreakpointStatement;
const CompilerOptionsForInferredProjects: protocol.CommandTypes.CompilerOptionsForInferredProjects;
const GetCodeFixes: protocol.CommandTypes.GetCodeFixes;
const GetCodeFixesFull: protocol.CommandTypes.GetCodeFixesFull;
const GetSupportedCodeFixes: protocol.CommandTypes.GetSupportedCodeFixes;
}
function formatMessage<T extends protocol.Message>(msg: T, logger: server.Logger, byteLength: (s: string, encoding: string) => number, newLine: string): string;
class Session implements EventSender {
private host;
protected readonly typingsInstaller: ITypingsInstaller;
private byteLength;
private hrtime;
protected logger: Logger;
protected readonly canUseEvents: boolean;
private readonly gcTimer;
protected projectService: ProjectService;
private errorTimer;
private immediateId;
private changeSeq;
private eventHander;
constructor(host: ServerHost, cancellationToken: HostCancellationToken, useSingleInferredProject: boolean, typingsInstaller: ITypingsInstaller, byteLength: (buf: string, encoding?: string) => number, hrtime: (start?: number[]) => number[], logger: Logger, canUseEvents: boolean, eventHandler?: ProjectServiceEventHandler);
private defaultEventHandler(event);
logError(err: Error, cmd: string): void;
send(msg: protocol.Message): void;
configFileDiagnosticEvent(triggerFile: string, configFile: string, diagnostics: ts.Diagnostic[]): void;
event(info: any, eventName: string): void;
output(info: any, cmdName: string, reqSeq?: number, errorMsg?: string): void;
private semanticCheck(file, project);
private syntacticCheck(file, project);
private updateProjectStructure(seq, matchSeq, ms?);
private updateErrorCheck(checkList, seq, matchSeq, ms?, followMs?, requireOpen?);
private cleanProjects(caption, projects);
private cleanup();
private getEncodedSemanticClassifications(args);
private getProject(projectFileName);
private getCompilerOptionsDiagnostics(args);
private convertToDiagnosticsWithLinePosition(diagnostics, scriptInfo);
private getDiagnosticsWorker(args, isSemantic, selector, includeLinePosition);
private getDefinition(args, simplifiedResult);
private getTypeDefinition(args);
private getImplementation(args, simplifiedResult);
private getOccurrences(args);
private getSyntacticDiagnosticsSync(args);
private getSemanticDiagnosticsSync(args);
private getDocumentHighlights(args, simplifiedResult);
private setCompilerOptionsForInferredProjects(args);
private getProjectInfo(args);
private getProjectInfoWorker(uncheckedFileName, projectFileName, needFileNameList);
private getRenameInfo(args);
private getProjects(args);
private getRenameLocations(args, simplifiedResult);
private getReferences(args, simplifiedResult);
private openClientFile(fileName, fileContent?, scriptKind?);
private getPosition(args, scriptInfo);
private getFileAndProject(args, errorOnMissingProject?);
private getFileAndProjectWithoutRefreshingInferredProjects(args, errorOnMissingProject?);
private getFileAndProjectWorker(uncheckedFileName, projectFileName, refreshInferredProjects, errorOnMissingProject);
private getOutliningSpans(args);
private getTodoComments(args);
private getDocCommentTemplate(args);
private getIndentation(args);
private getBreakpointStatement(args);
private getNameOrDottedNameSpan(args);
private isValidBraceCompletion(args);
private getQuickInfoWorker(args, simplifiedResult);
private getFormattingEditsForRange(args);
private getFormattingEditsForRangeFull(args);
private getFormattingEditsForDocumentFull(args);
private getFormattingEditsAfterKeystrokeFull(args);
private getFormattingEditsAfterKeystroke(args);
private getCompletions(args, simplifiedResult);
private getCompletionEntryDetails(args);
private getCompileOnSaveAffectedFileList(args);
private emitFile(args);
private getSignatureHelpItems(args, simplifiedResult);
private getDiagnostics(delay, fileNames);
private change(args);
private reload(args, reqSeq);
private saveToTmp(fileName, tempFileName);
private closeClientFile(fileName);
private decorateNavigationBarItems(items, scriptInfo);
private getNavigationBarItems(args, simplifiedResult);
private decorateNavigationTree(tree, scriptInfo);
private decorateSpan(span, scriptInfo);
private getNavigationTree(args, simplifiedResult);
private getNavigateToItems(args, simplifiedResult);
private getSupportedCodeFixes();
private getCodeFixes(args, simplifiedResult);
private mapCodeAction(codeAction, scriptInfo);
private convertTextChangeToCodeEdit(change, scriptInfo);
private getBraceMatching(args, simplifiedResult);
getDiagnosticsForProject(delay: number, fileName: string): void;
getCanonicalFileName(fileName: string): string;
exit(): void;
private notRequired();
private requiredResponse(response);
private handlers;
addProtocolHandler(command: string, handler: (request: protocol.Request) => {
response?: any;
responseRequired: boolean;
}): void;
executeCommand(request: protocol.Request): {
response?: any;
responseRequired?: boolean;
};
onMessage(message: string): void;
}
}
declare namespace ts.server {
interface LineCollection {
charCount(): number;
lineCount(): number;
isLeaf(): boolean;
walk(rangeStart: number, rangeLength: number, walkFns: ILineIndexWalker): void;
}
interface ILineInfo {
line: number;
offset: number;
text?: string;
leaf?: LineLeaf;
}
enum CharRangeSection {
PreStart = 0,
Start = 1,
Entire = 2,
Mid = 3,
End = 4,
PostEnd = 5,
}
interface ILineIndexWalker {
goSubtree: boolean;
done: boolean;
leaf(relativeStart: number, relativeLength: number, lineCollection: LineLeaf): void;
pre?(relativeStart: number, relativeLength: number, lineCollection: LineCollection, parent: LineNode, nodeType: CharRangeSection): LineCollection;
post?(relativeStart: number, relativeLength: number, lineCollection: LineCollection, parent: LineNode, nodeType: CharRangeSection): LineCollection;
}
class TextChange {
pos: number;
deleteLen: number;
insertedText: string;
constructor(pos: number, deleteLen: number, insertedText?: string);
getTextChangeRange(): TextChangeRange;
}
class ScriptVersionCache {
changes: TextChange[];
versions: LineIndexSnapshot[];
minVersion: number;
private host;
private currentVersion;
static changeNumberThreshold: number;
static changeLengthThreshold: number;
static maxVersions: number;
private versionToIndex(version);
private currentVersionToIndex();
edit(pos: number, deleteLen: number, insertedText?: string): void;
latest(): LineIndexSnapshot;
latestVersion(): number;
reloadFromFile(filename: string): void;
reload(script: string): void;
getSnapshot(): LineIndexSnapshot;
getTextChangesBetweenVersions(oldVersion: number, newVersion: number): TextChangeRange;
static fromString(host: ServerHost, script: string): ScriptVersionCache;
}
class LineIndexSnapshot implements ts.IScriptSnapshot {
version: number;
cache: ScriptVersionCache;
index: LineIndex;
changesSincePreviousVersion: TextChange[];
constructor(version: number, cache: ScriptVersionCache);
getText(rangeStart: number, rangeEnd: number): string;
getLength(): number;
getLineStartPositions(): number[];
getLineMapper(): (line: number) => number;
getTextChangeRangeSinceVersion(scriptVersion: number): TextChangeRange;
getChangeRange(oldSnapshot: ts.IScriptSnapshot): ts.TextChangeRange;
}
class LineIndex {
root: LineNode;
checkEdits: boolean;
charOffsetToLineNumberAndPos(charOffset: number): ILineInfo;
lineNumberToInfo(lineNumber: number): ILineInfo;
load(lines: string[]): void;
walk(rangeStart: number, rangeLength: number, walkFns: ILineIndexWalker): void;
getText(rangeStart: number, rangeLength: number): string;
getLength(): number;
every(f: (ll: LineLeaf, s: number, len: number) => boolean, rangeStart: number, rangeEnd?: number): boolean;
edit(pos: number, deleteLength: number, newText?: string): LineIndex;
static buildTreeFromBottom(nodes: LineCollection[]): LineNode;
static linesFromText(text: string): {
lines: string[];
lineMap: number[];
};
}
class LineNode implements LineCollection {
totalChars: number;
totalLines: number;
children: LineCollection[];
isLeaf(): boolean;
updateCounts(): void;
execWalk(rangeStart: number, rangeLength: number, walkFns: ILineIndexWalker, childIndex: number, nodeType: CharRangeSection): boolean;
skipChild(relativeStart: number, relativeLength: number, childIndex: number, walkFns: ILineIndexWalker, nodeType: CharRangeSection): void;
walk(rangeStart: number, rangeLength: number, walkFns: ILineIndexWalker): void;
charOffsetToLineNumberAndPos(lineNumber: number, charOffset: number): ILineInfo;
lineNumberToInfo(lineNumber: number, charOffset: number): ILineInfo;
childFromLineNumber(lineNumber: number, charOffset: number): {
child: LineCollection;
childIndex: number;
relativeLineNumber: number;
charOffset: number;
};
childFromCharOffset(lineNumber: number, charOffset: number): {
child: LineCollection;
childIndex: number;
charOffset: number;
lineNumber: number;
};
splitAfter(childIndex: number): LineNode;
remove(child: LineCollection): void;
findChildIndex(child: LineCollection): number;
insertAt(child: LineCollection, nodes: LineCollection[]): LineNode[];
add(collection: LineCollection): boolean;
charCount(): number;
lineCount(): number;
}
class LineLeaf implements LineCollection {
text: string;
constructor(text: string);
isLeaf(): boolean;
walk(rangeStart: number, rangeLength: number, walkFns: ILineIndexWalker): void;
charCount(): number;
lineCount(): number;
}
}
declare let debugObjectHost: any;
declare namespace ts {
interface ScriptSnapshotShim {
getText(start: number, end: number): string;
getLength(): number;
getChangeRange(oldSnapshot: ScriptSnapshotShim): string;
dispose?(): void;
}
interface Logger {
log(s: string): void;
trace(s: string): void;
error(s: string): void;
}
interface LanguageServiceShimHost extends Logger {
getCompilationSettings(): string;
getScriptFileNames(): string;
getScriptKind?(fileName: string): ScriptKind;
getScriptVersion(fileName: string): string;
getScriptSnapshot(fileName: string): ScriptSnapshotShim;
getLocalizedDiagnosticMessages(): string;
getCancellationToken(): HostCancellationToken;
getCurrentDirectory(): string;
getDirectories(path: string): string;
getDefaultLibFileName(options: string): string;
getNewLine?(): string;
getProjectVersion?(): string;
useCaseSensitiveFileNames?(): boolean;
getTypeRootsVersion?(): number;
readDirectory(rootDir: string, extension: string, basePaths?: string, excludeEx?: string, includeFileEx?: string, includeDirEx?: string, depth?: number): string;
readFile(path: string, encoding?: string): string;
fileExists(path: string): boolean;
getModuleResolutionsForFile?(fileName: string): string;
getTypeReferenceDirectiveResolutionsForFile?(fileName: string): string;
directoryExists(directoryName: string): boolean;
}
interface CoreServicesShimHost extends Logger {
directoryExists(directoryName: string): boolean;
fileExists(fileName: string): boolean;
getCurrentDirectory(): string;
getDirectories(path: string): string;
readDirectory(rootDir: string, extension: string, basePaths?: string, excludeEx?: string, includeFileEx?: string, includeDirEx?: string, depth?: number): string;
readFile(fileName: string): string;
realpath?(path: string): string;
trace(s: string): void;
useCaseSensitiveFileNames?(): boolean;
}
interface IFileReference {
path: string;
position: number;
length: number;
}
interface ShimFactory {
registerShim(shim: Shim): void;
unregisterShim(shim: Shim): void;
}
interface Shim {
dispose(_dummy: any): void;
}
interface LanguageServiceShim extends Shim {
languageService: LanguageService;
dispose(_dummy: any): void;
refresh(throwOnError: boolean): void;
cleanupSemanticCache(): void;
getSyntacticDiagnostics(fileName: string): string;
getSemanticDiagnostics(fileName: string): string;
getCompilerOptionsDiagnostics(): string;
getSyntacticClassifications(fileName: string, start: number, length: number): string;
getSemanticClassifications(fileName: string, start: number, length: number): string;
getEncodedSyntacticClassifications(fileName: string, start: number, length: number): string;
getEncodedSemanticClassifications(fileName: string, start: number, length: number): string;
getCompletionsAtPosition(fileName: string, position: number): string;
getCompletionEntryDetails(fileName: string, position: number, entryName: string): string;
getQuickInfoAtPosition(fileName: string, position: number): string;
getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): string;
getBreakpointStatementAtPosition(fileName: string, position: number): string;
getSignatureHelpItems(fileName: string, position: number): string;
getRenameInfo(fileName: string, position: number): string;
findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): string;
getDefinitionAtPosition(fileName: string, position: number): string;
getTypeDefinitionAtPosition(fileName: string, position: number): string;
getImplementationAtPosition(fileName: string, position: number): string;
getReferencesAtPosition(fileName: string, position: number): string;
findReferences(fileName: string, position: number): string;
getOccurrencesAtPosition(fileName: string, position: number): string;
getDocumentHighlights(fileName: string, position: number, filesToSearch: string): string;
getNavigateToItems(searchValue: string, maxResultCount?: number, fileName?: string): string;
getNavigationBarItems(fileName: string): string;
getNavigationTree(fileName: string): string;
getOutliningSpans(fileName: string): string;
getTodoComments(fileName: string, todoCommentDescriptors: string): string;
getBraceMatchingAtPosition(fileName: string, position: number): string;
getIndentationAtPosition(fileName: string, position: number, options: string): string;
getFormattingEditsForRange(fileName: string, start: number, end: number, options: string): string;
getFormattingEditsForDocument(fileName: string, options: string): string;
getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: string): string;
getDocCommentTemplateAtPosition(fileName: string, position: number): string;
isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): string;
getEmitOutput(fileName: string): string;
getEmitOutputObject(fileName: string): EmitOutput;
}
interface ClassifierShim extends Shim {
getEncodedLexicalClassifications(text: string, lexState: EndOfLineState, syntacticClassifierAbsent?: boolean): string;
getClassificationsForLine(text: string, lexState: EndOfLineState, syntacticClassifierAbsent?: boolean): string;
}
interface CoreServicesShim extends Shim {
getAutomaticTypeDirectiveNames(compilerOptionsJson: string): string;
getPreProcessedFileInfo(fileName: string, sourceText: IScriptSnapshot): string;
getTSConfigFileInfo(fileName: string, sourceText: IScriptSnapshot): string;
getDefaultCompilationSettings(): string;
discoverTypings(discoverTypingsJson: string): string;
}
class LanguageServiceShimHostAdapter implements LanguageServiceHost {
private shimHost;
private files;
private loggingEnabled;
private tracingEnabled;
resolveModuleNames: (moduleName: string[], containingFile: string) => ResolvedModuleFull[];
resolveTypeReferenceDirectives: (typeDirectiveNames: string[], containingFile: string) => ResolvedTypeReferenceDirective[];
directoryExists: (directoryName: string) => boolean;
constructor(shimHost: LanguageServiceShimHost);
log(s: string): void;
trace(s: string): void;
error(s: string): void;
getProjectVersion(): string;
getTypeRootsVersion(): number;
useCaseSensitiveFileNames(): boolean;
getCompilationSettings(): CompilerOptions;
getScriptFileNames(): string[];
getScriptSnapshot(fileName: string): IScriptSnapshot;
getScriptKind(fileName: string): ScriptKind;
getScriptVersion(fileName: string): string;
getLocalizedDiagnosticMessages(): any;
getCancellationToken(): HostCancellationToken;
getCurrentDirectory(): string;
getDirectories(path: string): string[];
getDefaultLibFileName(options: CompilerOptions): string;
readDirectory(path: string, extensions?: string[], exclude?: string[], include?: string[], depth?: number): string[];
readFile(path: string, encoding?: string): string;
fileExists(path: string): boolean;
}
class CoreServicesShimHostAdapter implements ParseConfigHost, ModuleResolutionHost {
private shimHost;
directoryExists: (directoryName: string) => boolean;
realpath: (path: string) => string;
useCaseSensitiveFileNames: boolean;
constructor(shimHost: CoreServicesShimHost);
readDirectory(rootDir: string, extensions: string[], exclude: string[], include: string[], depth?: number): string[];
fileExists(fileName: string): boolean;
readFile(fileName: string): string;
private readDirectoryFallback(rootDir, extension, exclude);
getDirectories(path: string): string[];
}
function realizeDiagnostics(diagnostics: Diagnostic[], newLine: string): {
message: string;
start: number;
length: number;
category: string;
code: number;
}[];
class TypeScriptServicesFactory implements ShimFactory {
private _shims;
private documentRegistry;
getServicesVersion(): string;
createLanguageServiceShim(host: LanguageServiceShimHost): LanguageServiceShim;
createClassifierShim(logger: Logger): ClassifierShim;
createCoreServicesShim(host: CoreServicesShimHost): CoreServicesShim;
close(): void;
registerShim(shim: Shim): void;
unregisterShim(shim: Shim): void;
}
}
declare namespace TypeScript.Services {
const TypeScriptServicesFactory: typeof ts.TypeScriptServicesFactory;
}
declare const toolsVersion = "2.2";