具体导入命名空间类

时间:2016-07-28 16:08:59

标签: typescript syntax tsc typescript-typings

我有一个像这样设置的命名空间:

export namespace Entities {

    export class Car { }

    export class Motorbike { }

}

在另一个课程中,我会导入CarMotorbike。但是,我无法简洁地导入它们。如果我尝试像这样导入它们:

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

我收到此错误(.之后的Entities):

  

','预计。

我能够做到这一点:

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

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

但理想情况下,我可以在不手动导入命名空间的情况下导入它们。这可能吗?

1 个答案:

答案 0 :(得分:0)

我不明白为什么你会想要在这种情况下使用命名空间。你有几个选择:

  • 在全局声明文件中定义类。然后,您可以直接在程序中使用您的类型,而无需导入它们。

    // index.d.ts
    declare class Car {
      someProperty: any
    }
    
    // app.ts
    let theCar: Car
    theCar.someProperty
    
  • 在模块声明文件中定义类。然后,您必须导入要使用的特定类型。

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