From fa252a44edefb83d201361f8134f1fa1f417b710 Mon Sep 17 00:00:00 2001 From: ezsh <ezsh.junk@gmail.com> Date: Fri, 29 May 2020 14:39:29 +0200 Subject: [PATCH] Fix co-existance of TypeScript and JavaScript declarations Rename the FC.d.ts to FC.ts to move it from the ambient to normal context, thus making namespace declarations from the FC.ts to extend but not overwrite "namespace" declarations from .js files in the TypeScript AST. --- devTools/{FC.d.ts => FC.ts} | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) rename devTools/{FC.d.ts => FC.ts} (96%) diff --git a/devTools/FC.d.ts b/devTools/FC.ts similarity index 96% rename from devTools/FC.d.ts rename to devTools/FC.ts index bbaee44babb..fd4791e0d7b 100644 --- a/devTools/FC.d.ts +++ b/devTools/FC.ts @@ -1,4 +1,5 @@ -declare namespace App { +/// <reference path="../js/002-config/fc-js-init.js" /> +namespace App { namespace Art {} namespace Corporate {} @@ -262,7 +263,7 @@ declare namespace App { labelTagsClear: boolean; } - class Rule { + declare interface Rule { ID: string; name: string; condition: RuleConditions; @@ -277,12 +278,12 @@ declare namespace App { namespace DOM { namespace Widgets { } - function makeElement<K extends keyof HTMLElementTagNameMap>(tag: K, content: string | Node, classNames: string | string[]): HTMLElementTagNameMap[K]; - function appendNewElement<K extends keyof HTMLElementTagNameMap>(tag: K, parent: ParentNode, content?: string | Node, classNames?: string | string[]): HTMLElementTagNameMap[K]; + declare function makeElement<K extends keyof HTMLElementTagNameMap>(tag: K, content: string | Node, classNames: string | string[]): HTMLElementTagNameMap[K]; + declare function appendNewElement<K extends keyof HTMLElementTagNameMap>(tag: K, parent: ParentNode, content?: string | Node, classNames?: string | string[]): HTMLElementTagNameMap[K]; } namespace View { } namespace SlaveSummary { - type AppendRenderer = (slave: App.Entity.SlaveState, parentNode: Node) => void; + type AppendRenderer = (slave: FC.SlaveState, parentNode: Node) => void; class AbbreviationState { clothes: number; @@ -561,7 +562,7 @@ declare namespace FC { enum NoObject { Value = 0 - }; + } type SlaveStateOrZero = SlaveState | NoObject; @@ -570,4 +571,4 @@ declare namespace FC { interface GameVariables extends DefaultGameStateVariables, ResetOnNGPVariables {} } -const V: FC.GameVariables; +declare const V: FC.GameVariables; -- GitLab