Я запускаю мутацию graphql и в зависимости от того, что пользователь вводит в интерфейс, я передаю различные переменные в мутации graphql с использованием объекта input
.
const [updateUser] = useMutation<UpdateUserReponse>(UPDATE_USER);
let submitForm = (
email: string,
firstName: string,
lastName: string,
newEmail: string,
phoneNumber: string,
) => {
setIsSubmitted(true);
if (email && (firstName || lastName || newEmail || phoneNumber)) {
const input: any= {};
if (firstName !== '') {
input.firstName = firstName;
}
if (lastName !== '') {
input.lastName = lastName;
}
if (newEmail !== '') {
input.email = newEmail;
}
if (phoneNumber !== '') {
input.phoneNumber = phoneNumber;
}
updateUser({
variables: {
email: email,
input: input,
},
})
Однако я не Я не хочу использовать input: any
и хочу быть более точным c. Как правило, это тип ввода, который я использую в самой мутации:
interface UpdateUserInput {
email: String;
firstName: String;
lastName: String;
phoneNumber: String;
}
Я пытался использовать это вместо any
, но это не работает. Я также пытался использовать object
, но затем я получаю ошибки, такие как:
Property 'firstName' does not exist on type 'object'.ts(2339)