Указание возвращаемого типа Typescript, который реализует интерфейс с дополнительными полями

Итак, у меня есть функция, которая возвращает объект, расширяющий класс FooInterface. Я хочу ограничить возвращаемый тип классами, которые реализуют FooInterface, но также имеют дополнительное поле.

interface FooInterface {
   readonly banana: string
}

function doThing() : FooInterface {

    return { 
        banana: 'blah',
        additionalField: 'blah2', // Must have
    }
}

Как я могу определить возвращаемый тип doThing(), чтобы указать, что additionalField должен быть включен? Есть ли способ сделать это, просто используя определение функции?

🤔 А знаете ли вы, что...
С помощью JavaScript можно валидировать данные на стороне клиента, что улучшает пользовательский опыт.


11
1

Ответ:

Решено

Это то, что тебе надо?

function doThing() : FooInterface & { additionalField: string } {
    return { 
        banana: 'blah',
        additionalField: 'blah2', // Must have
    }
}