playground link: https://www.typescriptlang.org/play/?#code/JYWwDg9gTgLgBDAnmApnA3nASmAxgZRgFcAjOAXzgDMoIQ4AiXAQzADsB3FEhgKF4AmKXABtmUNKOYBnaXAAqKafHS846uAHMUMAGrMRRFAAoAlAC44AbTZEQJFFAA0cW-ccBdXuX5JUcAA84AF44AEEOZmAYFAEAHiwdIig2eWQUBLxCUjjFZQA+KwZtPQMjBg98-N4AehqNAD0AfiA
import type { RpcStub } from "capnweb"
declare class Test {
getValue(): [number, number]
}
type x = Awaited<ReturnType<RpcStub<Test>["getValue"]>>
// number[] & Disposable
Expected Behavior
preserve the tuple type
Actual Behavior
All tuple turns into array, which make some types incompatible.