首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >TypeScript:有没有办法去掉“导入”?

TypeScript:有没有办法去掉“导入”?
EN

Stack Overflow用户
提问于 2015-12-10 19:23:49
回答 1查看 193关注 0票数 2

我是一个TypeScript初学者,我正在用TypeScript + Angular 1做一些项目。

到目前为止,我已经定义了一些服务,每个服务都具有以下结构:

代码语言:javascript
代码运行次数:0
运行
复制
/// <reference path="../App.ts"/>


module SomeModule {

export class SomeService {
    constructor(...) {
    ...
    }
}

var app = AppModule.getModule();
app.service("SomeService", SomeService);
}

我的App.ts在哪里:

代码语言:javascript
代码运行次数:0
运行
复制
module AppModule{
  'use strict';
   angular.module('SomeApp', [...]);

   export var getModule:() => ng.IModule = () => {
    return angular.module('SomeApp');
   };
}

当我尝试引用具有不同模块名称的服务时,我需要包括:

代码语言:javascript
代码运行次数:0
运行
复制
import SomeService = SomeModule.SomeService;

我的问题是:有没有办法省略这些导入?或者将它们存储在一个文件中,这样我以后只能引用一个文件,而不是引用所有具有不同模块的服务?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-12-10 19:58:54

你的代码有几处地方有问题。第一个是你应该只使用<references>注释,引用类型定义文件*.d.ts,而不是实际的源文件*.ts

第二个问题是你混合了内部和外部模块以及you should never do that

因此您可以使用namespace关键字来使用内部模块。尽量避免使用module关键字,因为它是` `namespace的旧版本。下面是一个基本的例子:

代码语言:javascript
代码运行次数:0
运行
复制
// some_module.ts
namespace AppModule.SomeModule {

    export class SomeService {
        constructor() {
         // ...
        }
    }
}

// app.ts
namespace AppModule {
   angular.module('SomeApp', []);

   export function getModule() {
       return angular.module('SomeApp');
   }
}

var app = AppModule.getModule();
app.service("SomeService", AppModule.SomeModule.SomeService);

对于外部模块,相同的代码将如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
// some_module.ts
class SomeService {
    constructor() {
        // ...
    }
}
export default SomeService;

// app.ts
angular.module('SomeApp', []);

function getModule() {
    return angular.module('SomeApp');
}
export default getModule;


// main.ts
import getModule from "./app";
import SomeService from "./some_module";

var app = getModule();
app.service("SomeService", SomeService);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34200652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档