具有相同名称的typescript类在不同的文件中重复

时间:2017-04-19 09:27:10

标签: node.js typescript

我有一个用typescript编写的项目(nodejs) 我有两个定义User类的文件,没有导出 虽然它们是孤立的但我从这两个文件上的typescript编译器得到重复错误

examples/hello_world.ts(3,7): error TS2300: Duplicate identifier 'User'. 
examples/models/user.model.ts(2,7): error TS2300: Duplicate identifier 'User'.

有什么想法吗? 感谢

2 个答案:

答案 0 :(得分:5)

对模块使用ES6语法,importexport

// models/user.model.ts
export class User {
}

// hello_world.ts
import {User as UserModel} from "./models/user.model"
export class User {
}

参见"重命名进口和出口"在文章中:ES6 In Depth: Modules,来自Mozilla。

答案 1 :(得分:0)

由于与Web平台兼容,TypeScript团队决定将没有显式导入和导出的脚本视为纯脚本:

  

相反,没有任何顶级导入或导出声明的文件将被视为脚本,其内容在全局范围内可用(因此也适用于模块)。

https://www.typescriptlang.org/docs/handbook/modules.html#introduction

对于像Node.js这样的环境,它并不那么方便。关于此https://github.com/microsoft/TypeScript/issues/18232,TypeScript存储库中存在一个问题。