max*_*pre 8 typescript typescript-typings typescript2.0 es6-modules
我可以轻松地获得具有多个值的导出默认值:
class Car {...}
class Bus {...}
export default { Car, Bus }
Run Code Online (Sandbox Code Playgroud)
我还可以轻松获得某种类型的导出默认值
export default interface Airplane {...}
Run Code Online (Sandbox Code Playgroud)
但我不能默认导出多种类型
interface Airplane {...}
interface Motorcycle {...}
// 'Airplane' only refers to a type, but is being used as a value here. ts(2693)
export default { Airplane, Motorcycle }
Run Code Online (Sandbox Code Playgroud)
或者多种类型和值的混合。
class Car {...}
interface Motorcycle {...}
// 'Airplane' only refers to a type, but is being used as a value here. ts(2693)
export default { Car, Airplane }
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现这个目标?
小智 7
考虑export =语法。
该export =语法指定从模块导出的单个对象。这可以是类、接口、命名空间、函数或枚举。
车辆.ts
namespace Vehicle {
export class Car {
// ...
}
export class Bus {
// ...
}
}
export = Vehicle;
Run Code Online (Sandbox Code Playgroud)
测试1.ts
import Vehicle from './Vehicle';
const car = new Vehicle.Car();
const bus = new Vehicle.Bus();
Run Code Online (Sandbox Code Playgroud)
测试2.ts
import { Bus, Car } from './Vehicle';
const car = new Car();
const bus = new Bus();
Run Code Online (Sandbox Code Playgroud)
请参阅https://www.typescriptlang.org/docs/handbook/modules.html#export--and-import--require
事实上,通过像这样导出:
class Car {...}
interface Motorcycle {...}
// 'Airplane' only refers to a type, but is being used as a value here. ts(2693)
export default { Car, Airplane }
Run Code Online (Sandbox Code Playgroud)
您要做的就是**导出具有两个属性的默认对象*。*
稍后,在您的代码中,您可以像这样导入它:
// name is as you like, its default import
import transport from transport;
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
....new transport.Car()
....new transport.Plane()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22665 次 |
| 最近记录: |