Я пытаюсь добавить набор шрифтов TypeScript в стороннюю библиотеку JavaScript.Большинство методов класса принимают другой экземпляр того же класса и возвращают новый экземпляр, но они также будут принимать те же перегруженные аргументы конструктора вместо фактического экземпляра класса.Я пытаюсь избежать написания одной и той же перегруженной подписи для каждого из множества методов класса, но я не уверен, как именно это сделать в моем файле .d.ts
.
Например, я мог бы записать каждыйтакой как ...
class Foo {
constructor(x: number);
constructor(x: number, y: number);
constructor({ x: number, y: number });
Fizz(foo: Foo): Foo;
Fizz(x: number): Foo;
Fizz(x: number, y: number): Foo;
Fizz({ x: number, y: number }): Foo;
Buzz(foo: Foo): Foo;
Buzz(x: number): Foo;
Buzz(x: number, y: number): Foo;
Buzz({ x: number, y: number }): Foo;
// etc... for several methods
}
Но было бы предпочтительнее сделать что-то вроде ...
class Foo {
constructor(x: number);
constructor(x: number, y: number);
constructor({ x: number, y: number });
// I'd like some sort of syntax like...
Fizz(constructor()): Foo;
Buzz(constructor()): Foo;
}
Можно ли легко объявить и повторно использовать подпись перегруженного метода?