Лучший метод, чем использование setter в машинописи: частные переменные объявлены, но значение не читается - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть сценарий, подобный следующему:

class Employee {
  private fullName: string;
  private firstName: string;
  private lastName: string;
  private age: number;
  private isValid: boolean;

  constructor() {
    this.fullName = null;
    this.firstName = null;
    this.lastName = null;
    this.age = null;
    this.isValid = false;
  }

  setfullName(fullName: string) {
    this.fullName = fullName;
  }

  setfirstName(firstName: string) {
    this.firstName = firstName;
  }

  setlastName(lastName: string) {
    this.lastName = lastName;
  }

  setAge(age: number) {
    this.age = age;
  }

  setValid(isValid: boolean) {
    this.isValid = isValid;
  }
}

// test.ts file
let employee = new Employee();

// set in different positions in test.ts file based on getting the input paramters
employee.setfullName("james cooper");
employee.setfirstName("mary");
employee.setlastName("fransis"); // getting lastName from another api call
employee.setAge(50); // getting 50 from another api call
employee.setValid(true);

Здесь я получаю предупреждение в vscode, вроде "объявлены закрытые переменные, но их значение не прочитано". Чтобы предотвратить это предупреждение, я должен использовать метод getter, но здесь цель - сохранить свойства объекта, а не чтение. Так что метод получения, кажется, бесполезен. Поскольку я новичок в машинописи, не устанавливая эти переменные в publi c или не отключая в конфигурации tslint, кто-нибудь может предложить лучший подход для того же?

Цель состоит в том, чтобы установить информацию о сотруднике, для этого я Создана модель сотрудника.

Буду признателен за любую помощь.

Заранее спасибо

1 Ответ

0 голосов
/ 14 апреля 2020

Поскольку вы ничего не делаете с данными на этой стороне, кроме присвоения их свойствам, похоже, что вместо этого вы должны создать простой объект. Поскольку в вашем исходном коде все методы, которые устанавливают свойства, публикуются c и больше ничего не делают, они не выполняют sh ничего полезного. Если внешний источник может вызвать метод установки, он может просто назначить свойство напрямую. class добавляет ненужные и запутанные накладные расходы, и отчасти именно поэтому Typescript жалуется. Вместо этого сделайте что-то вроде:

type Employee = Partial<{
    fullName: string;
    firstName: string;
    lastName: string;
    age: number;
    isValid: boolean;
}>;
const employee: Employee = {};
employee.age = 15;
employee.isValid = false;
// send employee to front-end

IMO, класс обычно полезен только тогда, когда вам нужно иметь данные, связанные с методами экземпляра и , которые каким-то образом извлекают и используют данные .

...