Как правильно использовать глобальный код в Typescript, но также использовать это имя в других целях? - PullRequest
0 голосов
/ 18 июня 2020

Мы перешли на Typescript, как только он появился, но тогда не было почти такой поддержки того, что мы делаем (ни советов).

CS.ts - содержит несколько очень распространенных методы, которые используются повсюду

module CS {
    "use strict";

    declare var baseUrl: string;

    /**
     * Opens a popup window in another tab if possible, otherwise shows a message to
     * the user that both explains that it wasn't shown and allows them to easily open it immediately.
     * @param url {string} The url to open
     */
    export function OpenPopupWindow(url: string): void {
        // You would call this function by using CS.OpenPopupWindow()
        var win = window.open(url, "_blank");
        CheckPopup(win, url);
    }

    // other code
}

Теперь мы объединяем другой код, связанный с другими файлами, например CS.Kendo.ts для всех вспомогательных методов, связанных с кендо:

/// <reference path="CS.ts" />
;
module CS {
    "use strict";
    export module Kendo {

        // You would call this function by using CS.Kendo.getParentElement()
        export function getParentElement(selector: any): JQuery { /* something here */ }
    }
}

Это приводит к огромному количеству этой ошибки в наши дни:

whole bunch of duplicate identifier errors

Итак, вопрос в том, как правильно делать то, что мы делали. Обычно он работает нормально, но со временем у нас появляется все больше и больше проблем со сборкой и минификацией. Компиляция при сохранении работает, сборки завершены, но когда мы строим с помощью IntelliSense, появляются ошибки, и если мы пытаемся построить машинописный текст в задаче gulp, мы снова получаем все эти ошибки.

* 1017 пример того, что такое «текущий правильный путь», учитывая, что в наши дни шаблоны настолько базовые c.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...