我怎样才能解决这种矛盾的导入?

时间:2018-01-30 09:57:35

标签: typescript

我有两个类 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';
    }
}

1 个答案:

答案 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是带有代码的操场的链接。