Rozważmy taką sytuację.
interface TestInterface{
type1 : number,
type2 : string,
}
let someVar:TestInterface = {type1:2, type2: 'something'};
Nic nadzwyczajnego do zmiennej przypisujemy odwołanie do obiektu, które ma dokładnie takie same właściwości jak zdefiniowane w interfejsie. Problem pojawia się gdy chcę zdefiniować taki typ który wymuszałby aby obiekt miał wszystko to co wymaga interface ale jednocześnie gdy podam wszystkie wymagane właściwości i dorzucę do obiektu coś co nie jest zefiniowane w interejsie to zgłosi mi błąd tak jak np. tu :
interface TestInterface{
type1 : number,
type2 : string,
}
let someVar:TestInterface = {type1:2, type2: 'something', type3:12};
Udało się mi zrobić coś takiego przy parametrze funkcji, ale chciałbym móc tworzyć zmienne w analogiczny sposób.
interface TestInterface{
type1 : number,
type2 : string,
}
function test2 <T extends TestInterface> (param:T):T{
return {...param, abele : "bele"};
}
const x = test2({type1 : 2, type2 : 'kurakao', type3 : 'surprise this is not defined in the interface but i can add it'})
Jak coś analogicznego zapisać przy deklarowaniu zmiennej?