小编Vin*_*ler的帖子

Typescript 中没有 SubmitEvent 接口吗?

TypeScript 有不同的接口来映射 DOM 事件。(例如KeyboardEventMouseEvent等)。我们可以在这里找到它们。例如,当在事件侦听器中接收事件的有效负载时,它们在 Angular 中很方便。

我有点惊讶无法找到这里SubmitEvent描述的接口。

任何人都可以确认并解释原因吗?我希望 TypeScript 团队为每个 DOM 事件共享接口。

dom-events typescript typescript-lib-dom

10
推荐指数
1
解决办法
2198
查看次数

在 Symfony2 的依赖注入中避免循环引用?

我是依赖注入的忠实粉丝,但有些事情困扰着我,我想知道是否有人可以给我一个解释:

创建两个相互依赖的服务是不可能的,因为我们会得到一个“循环引用”异常。我认为使用 symfony2 的每个人都遇到过这个错误。

虽然我非常理解这个错误,但有时我会遇到它,因为有很多服务,带来了复杂性……而且,也许还因为设计/调整服务并不容易。

因此,我想知道此错误的根本原因:

  1. 是为了在潜在的严重设计错误方面保护我们?如果是这种情况,您能否举一个例子说明如果两个依赖服务可以“共存”会发生什么严重的情况?
  2. 这纯粹是技术性的?即因为不可能同时调用两个构造函数。如果这是根本原因,为什么不通过强制服务构造函数为空并具有 init 方法来解决它?

IE:

class MyService1{

   private $service2;

   public function __construct(){ //empty constructor
      ...
   }

   protected function init(MyService2 $service2, ...){
      $this->service2 = $service2;
   }

}

class MyService2{

   private $service1;

   public function __construct(){ //empty constructor
      ...
   }

   protected function init(MyService1 $service1, ...){
      $this->service1 = $service1;
   }

}
Run Code Online (Sandbox Code Playgroud)

然后实例化这两个服务:

$service1 = new MyService1();
$service2 = new MyService2();
$service1->init($service2);
$service2->init($service1);
Run Code Online (Sandbox Code Playgroud)

我很确定有些东西我没有深入理解。那么有人可以解释一下为什么我们被阻止在容器中创建循环引用吗?

谢谢

dependency-injection circular-reference symfony

5
推荐指数
1
解决办法
1463
查看次数

是否可以在特征中输入提示$this?

我有一个特征,想输入提示 $this 来通知编译器它的类型:

trait MyTrait {
  public function myAwesomeFunction() {
    return new OtherClass($this); // warning: Expected MyAwesomeInterface, got MyTrait
  }
}

class OtherClass {
  public function __construct(MyAwesomeInterface $foo) { ... }
}
Run Code Online (Sandbox Code Playgroud)

所以我想知道是否有相当于的东西,例如:

trait MyTrait {
  public function myAwesomeFunction() {
    /**
     *  @var $this MyAwesomeInterface
     */
    return new OtherClass($this); // no warnings
  }
}
Run Code Online (Sandbox Code Playgroud)

这将使我能够通知编译器该特征的用户实现了我的接口。

请注意,特征无法在 PHP 中实现接口(请参阅为什么 PHP Trait 无法实现接口?)。

感谢您的任何帮助 ;-)

php phpdoc type-hinting

5
推荐指数
1
解决办法
857
查看次数