.equals()
сравнивает данные в классе (при условии, что функция реализована). ==
сравнивает местоположения указателя (расположение объекта в памяти).
==
возвращает true, если оба объекта (NOT TALKING OF PRIMITIVES) указывают на экземпляр SAME. .equals()
возвращает true, если два объекта содержат одни и те же данные equals()
Versus ==
в Java
Это может вам помочь.
Ваш код уже делает то, что вы хотите, у вас есть небольшая ошибка, вы указываете prompt(cmdPrompt)
, что означает функцию с параметром с именем cmdPrompt
, а не параметр типа cmdPrompt
. Вам просто нужно изменить это на param: cmdPrompt
, и все будет работать как ожидается
type setStringFunction = (value: string) => void;
type cmdPrompt = (setPrompt: setStringFunction) => void;
interface Cmd extends JQuery {
prompt(param: cmdPrompt): Cmd;
prompt(): cmdPrompt;
}
let obj!: Cmd;
obj.prompt(function(setPrompt) {
setPrompt(10); // error
});