I have two interfaces:
interface Person {
name:string,
active:boolean,
id:number,
location?:string
}
interface Department {
company:string,
department:string
}
I use the Person interface once here:
const mycontact:Person = {
name: 'John',
active: true,
id: 1
}
But in the same script I want to use both the Person and Department interface together but only here with the myPeeps variable. When I try to use the extends keyword I get an error: '?' expected Is it possible to only use extends in certain circumstances? If so how is that done?
const myPeeps:Person extends Department[] = [
{name: 'A', active: true, id: 1, company:'', department: ''},
{name: 'C', active: true, id: 2, company:'', department: ''},
{name: 'D', active: true, id: 3, company:'', department: ''},
{name: 'K', active: true, id: 4, company:'', department: ''},
{name: 'T', active: true, id: 5, location: 'cali', company:'', department: ''}
]
CodePudding user response:
In this case use the & operator to satisfy both interfaces
const myPeeps: (Person & Department)[] = [
{name: 'A', active: true, id: 1, company:'', department: ''},
{name: 'C', active: true, id: 2, company:'', department: ''},
{name: 'D', active: true, id: 3, company:'', department: ''},
{name: 'K', active: true, id: 4, company:'', department: ''},
{name: 'T', active: true, id: 5, location: 'cali', company:'', department: ''}
]

