типизация аргументов функции в паттерне roro
Наткнулся на паттерн roro, захотел использовать его в typeScript, но столкнулся с проблемой как затипизировать аругменты функции
func({ foo: string, bar: myType }): void {}
но ts так разумеется не съедает типизацию, возможно ли вообще такое реализовать?
Ответы (2 шт):
Автор решения: Alexey Ten
→ Ссылка
Надо явно объявлять тип объекта.
Например так
function func({ foo, bar }: { foo: string, bar: myType }): void {}
или отдельно интерфейс/тип
interface Params {
foo: string;
bar: myType;
}
function func({ foo, bar }: Params): void {}
Автор решения: qwabra
→ Ссылка
А можно и так:
type myType = any
declare var foo: string, bar: myType
type func1 = (q: { foo: string, bar: myType }) => void
declare var func1: func1
func1({ bar, foo })
interface func2 { (q: { foo: string, bar: myType }): void }
const func2: func2 = ({ foo, bar }) => { }
func2({ bar, foo })