我有一个用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'.
有什么想法吗? 感谢
答案 0 :(得分:5)
对模块使用ES6语法,import
和export
:
// 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存储库中存在一个问题。