javascript - 组成 Type Script 项目的多个文件

标签 javascript typescript

最近我一直在使用 TypeScript,一切都很好,我真的非常喜欢它......让 JavaScript 再次可用! :)

我们尝试遵循与任何 .net 项目背后相同的想法,例如每个类/接口(interface)一个文件

module Infrastructure {
    export interface IBaseViewModel {
        addOrRemoveClass(selector: string, className: string);
    }
}

我们遇到的问题是 - 没有包含所有依赖文件?在运行时。

如果您查看这个文件,它是我们应用程序的主要入口点,我会在创建新的 ViewModelBuilder 时遇到未定义的错误

module Infrastructure {
    export class Fusion {
        constructor() {
            this.vmBuilder = new ViewModelBuilder();
            this.setApplicationDefaults();
            this.start();
        }

        private vmBuilder: IViewModelBuilder;

        private start() {
            this.vmBuilder.process();
        }

        private setApplicationDefaults() {
            $.pnotify.defaults.styling = "jqueryui";
            $.pnotify.defaults.history = false;
            $.pnotify.defaults.auto_display = false;
        }
    }
}

在文件的顶部我们有

/// <reference path="../Typings/jquery.d.ts" />
/// <reference path="ViewModelBuilder/ViewModelBuilder.ts" />
/// <reference path="ViewModelBuilder/IViewModelBuilder.ts" />

还有 ViewModelBuilder

module Infrastructure {

    export class ViewModelBuilder { }
}

所以问题是 - 继续前进的最佳方式是什么?我们怎样才能使其他类声明起作用?我们的项目将大幅增长,我们可能有 100 个 View 模型来表示每个 View (该项目是从 Windows 窗体到 Web 的转换)

任何帮助都会很棒,因为我们真的需要克服它并继续前进! :)

最佳答案

我写了关于 getting the right set up for TypeScript其中的一个想法会对您有所帮助 - 我最初是从 Mark Rendle 那里得到这个想法的。

想法是创建一个名为 references.ts 的文件,并在其中列出所有依赖项。有点像这样:

/// <reference path="modulea.ts" />
/// <reference path="moduleb.ts" />
/// <reference path="modulec.ts" />
/// <reference path="moduled.ts" />
/// <reference path="modulee.ts" />

然后您可以在所有 TypeScript 文件的顶部简单地引用此文件:

/// <reference path="references.ts" />
module ModuleA {
    export class MyClass {
        doSomething() {
            return 'Hello';
        }
        tester() {
            var x = new ModuleB.MyClass();
        }
    }
}

references.ts 文件的作用类似于 .NET 项目的 References 文件夹。

另一个建议,与此设置一起工作得很好,是使用 --out 标志编译单个 JavaScript 文件,从 app.ts 开始. TypeScript 编译器遍历所有依赖项并为所有生成的 JavaScript 计算出正确的顺序。

tsc --out final.js app.ts

与在任何地方手动引用特定文件相比,此策略将更好地适应您的程序。

关于javascript - 组成 Type Script 项目的多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15335474/

相关文章:

javascript - 如何将div用作网格?

typescript - Typescript 中映射类型的索引签名

javascript - 为什么我的属性没有在我的 js 单元测试中设置?

javascript - FlatBuffers 未定义

JAVASCRIPT JSON.parse() 返回意外的 JSON 输入结束

reactjs - React 中的 msal.js - Azure 身份验证

angular - 如何为 Angular 2 中的子组件设置动画?

javascript - 如何将点击项目的索引移动到另一个不是父组件的组件?

javascript - angular2 中 angular.isString() 的替代方法是什么?

reactjs - this.state 在方法中未定义