1. 14 11月, 2019 1 次提交
    • M
      For #81574 (#84669) · a77da1b1
      Matt Bierner 提交于
      Our code currently uses the `IConstructorSignature` types in a two main ways:
      
      - As argument types in functions that take a service constructor.
      - As return types or property types when we expose a service constructor in the API
      
      This first usage is not valid with strict function types. The reason is that the `IConstructorSignature` types takes a rest array of `...services: BrandedService[]` , while the concrete constructors you pass in use actual services. With strict function types, you cannot convert the concrete constructor type to an `IConstructorSignature` because this would drop important type information that the implementation needs. As an example
      
      ```ts
      class Foo {
          constructor(@ILogService service: ILogService) {}
      }
      
      registerFoo(Foo);
      
      // The type of `ctor` inlines `IConstructorSignature0`
      function registerFoo(ctor: { new(....serivces: BrandedService[]): Foo}) {
         // When registerFoo(Foo) is called, the implementation here would need to know that
         // ctor needs to be invoked with exactly one `ILogService`. However the type of `IConstructorSignature0`
         // does not express this. Strict function types therefore disallows this conversion
      }
      ```
      
      To fix this, I have converted a few places were we were taking `IConstructorSignature` arguments so that they preserve the full type of the constructor. This fixed over half of our 900 strict function type errors. Unfortunatly I can not figure out a more elegant way to express this besides inlining the types
      
      However, even after this change, we still need to figure out how to deal with:
      
      - Places in the code where `IConstructorSignature` is exposed as a return type or object property
      - How to deal with all of our descriptor types (such as `SyncActionDescriptor`)
      a77da1b1
  2. 08 10月, 2019 1 次提交
  3. 07 10月, 2019 1 次提交
  4. 05 8月, 2019 1 次提交
  5. 08 6月, 2019 1 次提交
  6. 07 6月, 2019 1 次提交
  7. 01 4月, 2019 1 次提交
  8. 21 3月, 2019 2 次提交
  9. 11 3月, 2019 1 次提交
  10. 05 3月, 2019 1 次提交
  11. 24 1月, 2019 1 次提交
  12. 08 1月, 2019 1 次提交
  13. 04 1月, 2019 1 次提交
  14. 07 11月, 2018 1 次提交
  15. 03 10月, 2018 1 次提交
  16. 01 10月, 2018 1 次提交
  17. 03 9月, 2018 1 次提交
  18. 02 7月, 2018 1 次提交
    • B
      debt week code cleanup · 4d0b3d02
      Benjamin Pasero 提交于
      - avoid public modifier
      - use Disposable where applicable
      - fix some event handler leaks
      - clean up some TODO@ben
      4d0b3d02
  19. 16 3月, 2018 1 次提交
  20. 15 3月, 2018 2 次提交
  21. 23 1月, 2018 1 次提交
  22. 04 1月, 2018 2 次提交
  23. 21 12月, 2017 2 次提交
  24. 06 9月, 2017 1 次提交
  25. 19 6月, 2017 1 次提交
  26. 29 5月, 2017 1 次提交
  27. 05 4月, 2017 1 次提交
  28. 29 12月, 2016 1 次提交
  29. 28 12月, 2016 1 次提交
  30. 08 10月, 2016 1 次提交
  31. 15 6月, 2016 1 次提交
  32. 08 6月, 2016 1 次提交
  33. 28 4月, 2016 1 次提交
  34. 22 2月, 2016 2 次提交
  35. 20 1月, 2016 1 次提交