2016-07-28 16 views
0

Ich habe einen Namespace wie folgt aufgebaut:Import Namespace-Klasse speziell

export namespace Entities { 

    export class Car { } 

    export class Motorbike { } 

} 

In einer anderen Klasse, ich Car und Motorbike dann importieren. Ich kann sie jedoch nicht prägnant importieren. Wenn ich versuche, sie so zu importieren:

import { Entities.Car as Car, Entities.Motorbike as Motorbike } from "./somefile.ts"; 

ich diesen Fehler (auf der . nach Entities):

'' erwartet.

Ich bin in der Lage, dies zu tun:

// import whole namespace 
import { Entities } from "./somefile.ts"; 

// use the type directly: 
let vehicle: Entities.Car; 

jedoch im Idealfall würde ich in der Lage sein, sie zu importieren, ohne den Namespace manuell zu importieren. Ist das möglich?

Antwort

0

Ich sehe nicht, warum Sie einen Namespace in dieser Situation verwenden möchten. Sie haben hier mehrere Möglichkeiten:

  • Definieren Sie Ihre Klassen in einer globalen Deklarationsdatei. Sie können Ihre Typen dann direkt in Ihrem Programm verwenden, ohne sie importieren zu müssen.

    // index.d.ts 
    declare class Car { 
        someProperty: any 
    } 
    
    // app.ts 
    let theCar: Car 
    theCar.someProperty 
    
  • Definieren Sie Ihre Klassen in einer Moduldeklarationsdatei. Sie müssen dann die spezifischen Typen importieren, die Sie verwenden möchten.

    // index.d.ts 
    export class Car { 
        someProperty: any 
    } 
    
    // app.ts 
    import { Car } from './index' 
    let theCar: Car 
    theCar.someProperty 
    
Verwandte Themen