typescript | 命名空间与导包,编译器链接多文件reference | ts-node使用

多文件导包,类似C#首先定义命名空间,在main文件中,使用import导入(using)命名空间。

这里需要注意的是,需要给编译器配置链接信息,即include操作。

例如:

定义命名空间Factory,导出一个函数create

// Factory.ts

namespace Factory {
  export function create<T>(c: { new (): T }): T {
    return new c()
  }
}

在另一个文件使用

index.ts

/// <reference path="Factory.ts" />
import create = Factory.create

class Hello {
  private mess: string = 'hello template'
  public show() {
    console.log(this.mess)
  }
}

function main() {
  let hello = create(Hello)
  hello.show()
}
main()

 

首先添加链接信息:/// <reference path="Factory.ts" />

导包: import create = Factory.create

 

编译项目 : tsc index.ts

 

————————————————————————

有一个不需要编译即可运行的工具ts-node,但是经测试它不能处理reference链接信息

它只能处理es6规范的导包

例如

// Factory.ts

export function create<T>(c: { new (): T }): T {
  return new c()
}

index.ts

import { create } from './Factory'

class Hello {
  private mess: string = 'hello template'
  public show() {
    console.log(this.mess)
  }
}

function main() {
  let hello = create(Hello)
  hello.show()
}
main()

 

运行: ts-node index.ts

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值