Как насчет:
interface InputObj {
arg1: number;
arg2: number;
arg3: number;
}
interface ExampleProps {
sum: (input: InputObj) => number
}
Или в строке:
interface ExampleProps {
sum: (
input: {
arg1: number;
arg2: number;
arg3: number;
}
) => number;
}
Но в зависимости от вашего варианта использования вам может не потребоваться определение ExampleProps
. Вот ваша sum
функция без произвольного input
имени объекта:
const sum = ({
arg1,
arg2,
arg3
}: {
arg1: number;
arg2: number;
arg3: number;
}) => arg1 + arg2 + arg3;
Я сам еще не пробовал это, но emacs-nav - это новый браузер проектов Emacs от Google, который, похоже, обладает теми функциями, которые вы цените.
Я думаю, что различные части cedet будут делать то, что вы хотите. Speedbar имеет древовидную структуру, а EDE обрабатывает проекты и т. Д.