Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 简化打字脚本编码工作流程_Angularjs_Typescript - Fatal编程技术网

Angularjs 简化打字脚本编码工作流程

Angularjs 简化打字脚本编码工作流程,angularjs,typescript,Angularjs,Typescript,在我们的项目中,我们将AngularJs(v1)与typescript一起使用,我发现我们的工作流有点过于复杂和缓慢。这就是为什么我想问stackoverflow社区如何简化这个问题 1) 手动更新_references.ts 现在我们手工维护文件_references.ts。每次需要添加/删除文件时,我们都需要以正确的顺序更新此文件。我想知道是否有自动生成此文件的解决方案。在typescript项目的属性中,我在输出部分有一个选项“生成声明文件”,但这似乎不是正确的选项 2) 强化使用界面

在我们的项目中,我们将AngularJs(v1)与typescript一起使用,我发现我们的工作流有点过于复杂和缓慢。这就是为什么我想问stackoverflow社区如何简化这个问题


1) 手动更新_references.ts 现在我们手工维护文件_references.ts。每次需要添加/删除文件时,我们都需要以正确的顺序更新此文件。我想知道是否有自动生成此文件的解决方案。在typescript项目的属性中,我在输出部分有一个选项“生成声明文件”,但这似乎不是正确的选项


2) 强化使用界面的作用 我在许多带有angularJs的typescript教程中看到,我们需要在每个文件中包含以下3个元素:

   interface ISplashScreenController {}
   interface ISplashScreenControllerScope extends ng.IScope {}
   class SplashScreenController implements ISplashScreenController {}
我很容易理解这个范围(在这个示例中将vm设置为SplashScreenController的类型),但是全局接口真的有用吗?为什么要在这里使用界面而不是只声明SplashscreenController


3) 全局注入

我希望能够注入一些全球服务。例如:$translate、$q、$timeout、time、我自己的CommonServices。。。事实上,我的应用程序中的许多控制器/服务都使用这个,每当我需要它时就注入它有点奇怪。我希望在任何地方都能使用它

例如,我希望有一个“DateFormatTools”,并能够在html中直接使用它,而无需将其注入控制器,然后调用vm.DateFormatTools.format(…)


4) 最大的问题之一是维护app.ts和$inject以及构造函数中的注入。以下是一个示例:

在app.ts中:

smartLingoApp.controller("SplashScreenController", ["$scope", "$q", "$timeout", "$translate", "DialogServices", "InitializationServices", "LocalStorageServices", "UserServices", "StateStackServices", SplashScreenController]);
在splashScreenController.ts中:

static $inject = ["$scope", "$q", "$timeout", "$translate", "DialogServices", "InitializationServices", "LocalStorageServices", "UserServices", "StateStackServices"];
constructor($scope: ISplashScreenControllerScope,
    private $q: angular.IQService,
    private $timeout: angular.ITimeoutService,
    private $translate: angular.translate.ITranslateService,
    private dialogServices: IDialogServices,
    private initializationServices: IInitializationServices,
    private localStorageServices: ILocalStorageServices,
    private userServices: IUserServices,
    private stateStackServices: IStateStackServices) {}
当然,每次我添加/删除依赖项时,我都需要更新$inject和app.ts,这可能会造成错误。 理想情况下,最好只在splashScreenController.ts中设置依赖项

谢谢你的帮助

手动更新_references.ts现在我们手动维护文件_references.ts。每次需要添加/删除文件时,我们都需要以正确的顺序更新此文件。我想知道是否有自动生成此文件的解决方案

很久以前。。。我是为grunt写这篇文章的:

它为您维护
reference.ts

更多
视频:

谢谢您的回答。不幸的是,我不明白为什么,但是我的app.ts包含在generate\u references文件的顶部,当然app.ts需要其他typescript def,所以我的应用程序会崩溃。