我有两个类 Lamp 和 Switch 。由于我已将这两个类分成不同的文件,现在我有一个矛盾的导入:
灯导入切换以致电Switch.on(此)
切换导入灯以解析其界面。
lamp.ts
import Switch from './switch.ts';
export default class Lamp {
state: 'on' | 'off' = 'off';
constructor () {
Switch.on(this);
}
}
switch.ts
import Lamp from './lamp.ts';
export default class Switch {
static on (lamp: Lamp) {
lamp.state = 'on';
}
static off (lamp: Lamp) {
lamp.state = 'off';
}
}
答案 0 :(得分:1)
您可以创建一个界面,我们称之为Lamp
。那Switch
可以实现。
那样Lamp
依赖于抽象而不是具体的interface Switchable {
state: 'on' | 'off';
}
class Lamp implements Switchable {
state: 'on' | 'off' = 'off';
constructor() {
Switch.on(this);
}
}
class Switch {
static on(switchable: Switchable) {
switchable.state = 'on';
}
static off(switchable: Switchable) {
switchable.state = 'off';
}
}
类。
它看起来像这样:
<input type="text" name="model" placeholder="Model">
// examples for your migration
$table->string('model')->nullable();
// or
$table->string('model')->default('foo');
Here是带有代码的操场的链接。