Подскажите как мне реализовать правильно интерфейс? https://www.typescriptlang.org/play/#src=%0D%0Ainterface%20CustomPromiseLike%3CT%3E%20%7B%0D%0A%09then%3CTResult1%20%3D%20T%2C%20TResult2%20%3D%20never%3E(%0D%0A%09%09onfulfilled%3F%3A%20((value%3A%20T)%20%3D%3E%20TResult1%20%7C%20CustomPromiseLike%3CTResult1%3E)%20%7C%20undefined%20%7C%20null%2C%0D%0A%09%09onrejected%3F%3A%20((reason%3A%20any)%20%3D%3E%20TResult2%20%7C%20CustomPromiseLike%3CTResult2%3E)%20%7C%20undefined%20%7C%20null%0D%0A%09)%3A%20CustomPromiseLike%3CTResult1%20%7C%20TResult2%3E%3B%0D%0A%7D%0D%0A%0D%0Aclass%20CustomPRomise%3CT%3E%20implements%20CustomPromiseConstructor%20%7B%0D%0A%0D%0A%20%20%20%20reject%3CT%20%3D%20never%3E(reason%3F%3A%20any)%3A%20CustomPRomise%3CT%3E%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20new%20CustomPRomise((resolve1%2C%20reject1)%20%3D%3E%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20reject1()%3B%0D%0A%09%09%7D)%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20resolve%3CT%3E(value%3A%20CustomPromiseLike%3CT%3E%20%7C%20T)%3A%20CustomPRomise%3CT%3E%20%7B%0D%0A%09%09return%20new%20CustomPRomise((resolve1%2C%20reject1)%20%3D%3E%20%7B%0D%0A%09%09%09resolve1()%3B%0D%0A%09%09%7D)%3B%0D%0A%09%7D%3B%0D%0A%0D%0A%0D%0A%20%20%20%20constructor(executor%3A%20(resolve%3A%20(value%3F%3A%20T%20%7C%20CustomPromiseLike%3CT%3E)%20%3D%3E%20void%2C%20reject%3A%20(reason%3F%3A%20any)%20%3D%3E%20void)%20%3D%3E%20void)%3A%20CustomPRomise%3CT%3E%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20new%20CustomPRomise((resolve1%2C%20reject1)%20%3D%3E%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20resolve1()%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20reject1()%3B%0D%0A%09%09%7D)%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0Ainterface%20CustomPromiseConstructor%20%7B%0D%0A%09new%20%3CT%3E(%0D%0A%09%09executor%3A%20(resolve%3A%20(value%3F%3A%20T%20%7C%20CustomPromiseLike%3CT%3E)%20%3D%3E%20void%2C%20reject%3A%20(reason%3F%3A%20any)%20%3D%3E%20void)%20%3D%3E%20void%0D%0A%09)%3A%20CustomPRomise%3CT%3E%3B%0D%0A%0D%0A%09reject%3CT%20%3D%20never%3E(reason%3F%3A%20any)%3A%20CustomPRomise%3CT%3E%3B%0D%0A%0D%0A%09resolve%3CT%3E(value%3A%20T%20%7C%20CustomPromiseLike%3CT%3E)%3A%20CustomPRomise%3CT%3E%3B%0D%0A%7D%0D%0A