簡體   English   中英

TypeScript:有沒有擺脫“導入”的方法?

[英]TypeScript: is there a way to get rid of 'import'?

我是一名TypeScript初學者,並且正在使用TypeScript + Angular 1做一些項目。

到目前為止,我已經定義了一些服務,每個服務都具有以下結構:

/// <reference path="../App.ts"/>


module SomeModule {

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

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

我的App.ts在哪里:

module AppModule{
  'use strict';
   angular.module('SomeApp', [...]);

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

每當我嘗試引用具有不同模塊名稱的服務時,都需要包括:

import SomeService = SomeModule.SomeService;

我的問題是:是否可以忽略這些進口? 還是將它們存儲在一個文件中,以便以后我只能引用一個文件,而不是引用所有具有不同模塊的服務?

謝謝!

您的代碼有些錯誤。 第一個是您應該僅使用<references>注釋, *.d.ts不是引用類型定義文件*.d.ts而不是實際的源文件*.ts

第二個原因是您在混合內部和外部模塊, 因此絕對不要這樣做

因此,您可以使用namespace關鍵字使用內部模塊。 盡量避免使用module關鍵字,因為它是命名空間的舊版本。 以下是一個基本示例:

// 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);

對於外部模塊,相同的代碼如下所示:

// 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM