class-method.ts 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // https://github.com/prettier/prettier/issues/4070
  2. export class Thing implements OtherThing {
  3. do: (type: Type) => Provider<Prop> = memoize((type: ObjectType): Provider<Opts> => {});
  4. }
  5. export class Thing2 implements OtherThing {
  6. do: (type: Type) => Provider<Prop> = memoize((type: ObjectType): Provider<Opts> => { const someVar = doSomething(type); if (someVar) {return someVar.method()} return false;});
  7. }
  8. export class Thing3 implements OtherThing {
  9. do: (type: Type) => Provider<Prop> = memoize((type) => { const someVar = doSomething(type); if (someVar) {return someVar.method()} return false;});
  10. }
  11. export class Thing4 implements OtherThing {
  12. do: (type: Type) => Provider<Prop> = memoize((type: ObjectType): Provider<Opts> => type.doSomething());
  13. }
  14. export class Thing5 implements OtherThing {
  15. do: (type: Type) => Provider<Prop> = memoize((type: ObjectType): Provider<Opts> => <any>type.doSomething());
  16. }
  17. export class Thing6 implements OtherThing {
  18. do: (type: Type) => Provider<Prop> = memoize((type: ObjectType): Provider<Opts> => <Provider<Opts>>type.doSomething());
  19. }
  20. export class Thing7 implements OtherThing {
  21. do: (type: Type) => Provider<Prop> = memoize((type: ObjectType) => <Provider<Opts>>type.doSomething());
  22. }
  23. export class Thing8 implements OtherThing {
  24. do: (type: Type) => Provider<Prop> = memoize((type: ObjectType) => <Provider<Opts>>type.doSomething(withArgs, soIt, does, not, fit).extraCall());
  25. }
  26. export class Thing9 implements OtherThing {
  27. do: (type: Type) => Provider<Prop> = memoize((type: ObjectType) => type.doSomething());
  28. }
  29. export class Thing10 implements OtherThing {
  30. do: (type: Type) => Provider<Prop> = memoize((veryLongArgName: ObjectType): Provider<Options, MoreOptions> => veryLongArgName );
  31. }
  32. export class Thing11 implements OtherThing {
  33. do: (type: Type) => Provider<Prop> = memoize((type: ObjectType): Provider => {});
  34. }
  35. // regular non-arrow functions
  36. export class Thing12 implements OtherThing {
  37. do: (type: Type) => Provider<Prop> = memoize(function(type: ObjectType): Provider<Opts> {return type});
  38. }
  39. export class Thing13 implements OtherThing {
  40. do: (type: Type) => Provider<Prop> = memoize(function(type: ObjectType): Provider<Opts> { const someVar = doSomething(type); if (someVar) {return someVar.method()} return false;});
  41. }
  42. export class Thing14 implements OtherThing {
  43. do: (type: Type) => Provider<Prop> = memoize(function(type) { const someVar = doSomething(type); if (someVar) {return someVar.method()} return false;});
  44. }
  45. export class Thing15 implements OtherThing {
  46. do: (type: Type) => Provider<Prop> = memoize(function(type: ObjectType): Provider<Opts> {return type.doSomething()});
  47. }
  48. export class Thing16 implements OtherThing {
  49. do: (type: Type) => Provider<Prop> = memoize(function(type: ObjectType): Provider<Opts> {return <any>type.doSomething()});
  50. }
  51. export class Thing17 implements OtherThing {
  52. do: (type: Type) => Provider<Prop> = memoize(function(type: ObjectType): Provider<Opts> {return <Provider<Opts>>type.doSomething()});
  53. }
  54. export class Thing18 implements OtherThing {
  55. do: (type: Type) => Provider<Prop> = memoize(function(type: ObjectType) {return <Provider<Opts>>type.doSomething()});
  56. }
  57. export class Thing19 implements OtherThing {
  58. do: (type: Type) => Provider<Prop> = memoize(function(type: ObjectType) { return <Provider<Opts>>type.doSomething(withArgs, soIt, does, not, fit).extraCall()});
  59. }
  60. export class Thing20 implements OtherThing {
  61. do: (type: Type) => Provider<Prop> = memoize(function(type: ObjectType) {return type.doSomething()});
  62. }
  63. export class Thing21 implements OtherThing {
  64. do: (type: Type) => Provider<Prop> = memoize(function(veryLongArgName: ObjectType): Provider<Options, MoreOptions> { return veryLongArgName });
  65. }
  66. export class Thing22 implements OtherThing {
  67. do: (type: Type) => Provider<Prop> = memoize(function(type: ObjectType): Provider {});
  68. }
  69. // case from https://github.com/prettier/prettier/issues/2581
  70. const appIDs = createSelector(
  71. PubXURLParams.APP_IDS,
  72. (rawAppIDs): Array<AppID> => deserializeList(rawAppIDs),
  73. );