Ваш код будет работать, и можно сказать, что свойство может быть одним из списка типов, используя |
. Это называется Union Type .
Обратите внимание, что при работе с объединенными типами вам может понадобиться использовать защиту типов или приведение типов в тех случаях, когда вы хотите получить доступ к свойствам, относящимся к менее чем всем перечисленным типам. Например:
const demo: Demo = {
payload: {
id: '1',
name: 'boo',
},
};
const demo2: Demo = {
payload: {
id: '1',
price: 25,
},
};
// property is shared between types
demo.payload.id;
// If you do not cast, these will yield errors because the properties are not shared
(demo.payload as IPayload1).name;
(demo.payload as IPayload2).price;