В терминале jQuery у меня есть файл d.ts, и я расширяю jQuery следующим образом:
declare namespace JQueryTerminal {
...
type echoValue = string | string[] | Element | JQuery<Element> | (() => string | string[]);
...
}
interface JQueryTerminal<TElement = HTMLElement> extends JQuery<TElement> {
...
echo<TValue = JQueryTerminal.echoValue>(arg: TypeOrPromise<TValue>, options?: JQueryTerminal.EchoOptions): JQueryTerminal;
...
}
ПРИМЕЧАНИЕ: это двойные типы для идеи JQueryTerminal в d.ts пришли из @ types / jquery.
возможно ли сделать JQueryTerminal универсальным с двумя значениями, которые я буду использовать в echo. В основном я хочу указать, какие значения будет принимать echo, но необходимо расширить JQueryTerminal.echoValue.
Мне это нужно, потому что в новом API я позволю добавить renderHandler, который будет обрабатывать различные типы методом echo.
Так что, в принципе, я хочу, чтобы что-то подобное было возможно:
class Foo {}
var term = $('body').terminal<Foo>({}, {
renderHandler: function(value) {
if (value instanceof Foo) {
return $('<div>Foo</div>');
}
});
term.echo(new Foo());
term.echo("foo");