У меня есть функция, которая принимает объект в качестве аргумента, но переданные объекты могут иметь различную структуру. Как я могу определить тип / типы для аргумента, не устанавливая какие-либо свойства объекта как необязательные (поскольку это делает всю типизацию намного менее полезной)?
Что я хотел бы сделать, но, очевидно, не работает, это что-то вроде этого:
type One = {
a: string
b: string
}
type Two = {
c: string
d: string
}
type Three = {
e: string
}
type OneOfTheseTypes = One | Two | Three
const myGenericFunction = (obj: OneOfTheseTypes) => {...}
PS Я только начинаю делать свои первые детские шаги с TypeScript, поэтому, пожалуйста, прости меня, если я думаю, что все это неправильно!
РЕДАКТИРОВАТЬ: Таким образом, функция возвращает объект того же типа, что и аргумент, и когда я использую возвращенный объект (например, returnedObj.a
), я получаю ошибки, говорящие, что «Свойство a» не существует для типа «OneOfTheseTypes» »«. и «Свойство« а »не существует для типа« Два ».» Я использую TypeScript с React, я не знаю, имеет ли это какое-либо отношение к этому.