Как создать объект и присвоить его строго типизированной переменной? - PullRequest
1 голос
/ 07 апреля 2020
form: Insured: {
    firstName: response.primaryInsured.firstName,
    lastName: response.primaryInsured.lastName,
    dateofbirth: response.primaryInsured.dateOfBirth,
}

Форма является частью объекта, и она принимает тип Застрахованного. Синтаксис здесь неправильный? Как мне назначить этот новый объект для формы?

Вот мой C# эквивалент, который я пытаюсь сделать

form = new Insured {
    FirstName = response.FirstName,
    LastName = response.LastName
};

1 Ответ

2 голосов
/ 07 апреля 2020

Вы устанавливаете тип при объявлении переменной, которую вы не показывали. Например:

let form: Insured;

Если при присвоении ему объекта, если Insured - это просто тип (и вы уже подтвердили это), вы не включаете тип вообще в присваивании:

form = {
    firstName: response.primaryInsured.firstName,
    lastName: response.primaryInsured.lastName,
    dateofbirth: response.primaryInsured.dateOfBirth,
};

Вы можете объединить их:

let form: Insured = {
    firstName: response.primaryInsured.firstName,
    lastName: response.primaryInsured.lastName,
    dateofbirth: response.primaryInsured.dateOfBirth,
};

Если Insured является конструктором класса, вы должны сделать:

form = new Insured(/*...arguments here...*/);

... где /*...arguments here...*/ зависит от того, как написан конструктор. Если он написан так, чтобы принимать аргументы в указанном вами порядке, то:

form = new Insured(
    response.primaryInsured.firstName,
    response.primaryInsured.lastName,
    response.primaryInsured.dateOfBirth,
);

И снова, вы можете комбинировать те, и в этом случае вам не нужно указывать тип, TypeScript выведет это:

let form = new Insured(/*...arguments here...*/);
// or to be explicit
let form: Insured = new Insured(/*...arguments here...*/);

(теперь вы подтвердили, что это тип, а не класс)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...