编辑:有关更多背景,请参阅ES讨论的讨论.
我有三个模块A,B和C.A并B导入从模块的默认出口C和模块C导入的默认从两个A和B.但是,模块C不依赖于从模块评估期间A和B模块评估期间导入的值,仅在运行时在评估所有三个模块之后的某个时间点.模块A和B 不依赖于进口值C的模块评估期间.
代码看起来像这样:
// --- Module A
import C from 'C'
class A extends C {
// ...
}
export {A as default}
Run Code Online (Sandbox Code Playgroud)
.
// --- Module B
import C from 'C'
class B extends C {
// ...
}
export {B as default}
Run Code Online (Sandbox Code Playgroud)
.
// --- …Run Code Online (Sandbox Code Playgroud) 在ES6中我们可以做匿名类:
var entity = class {
}
Run Code Online (Sandbox Code Playgroud)
但我们也可以实例化它:
var entity = new class {
constructor(name) { this.name = name; }
getName() { return this.name; }
}('Foo');
console.log(entity.getName()); // Foo
Run Code Online (Sandbox Code Playgroud)
背后做了什么,它带来了什么好处以及它带来了什么警告?
javascript oop anonymous-function javascript-objects ecmascript-6
我有两个一对一双向的实体类型:
部门:
@Entity('Departament')
export default class Departament {
@PrimaryGeneratedColumn()
id: string;
@Column()
departament_name: string;
@OneToOne(type => User, user => user.departament)
@JoinColumn()
user: User;
@CreateDateColumn({ name: 'created_at' })
createdAt: Date;
@UpdateDateColumn({ name: 'updated_at' })
UpdatedAt: Date;
}
Run Code Online (Sandbox Code Playgroud)
用户:
@Entity('User')
export default class User {
@PrimaryGeneratedColumn()
id: string;
@Column()
name: string;
@Column()
last_name: string;
@Column()
email: string;
@Column()
login: string;
@Column()
password: string;
@OneToOne(type => Departament, departament => departament.user)
departament: Departament;
}
Run Code Online (Sandbox Code Playgroud)
这些是我的.eslintrc设置:
{
"env": {
"es6": true,
"node": true, …Run Code Online (Sandbox Code Playgroud)