Любой способ использовать Loopback 4 со строгим режимом, установленным в tsconfig? - PullRequest
0 голосов
/ 04 февраля 2019

Мне нужно установить strict в true в моем tsconfig.json, но это вызывает проблемы.Например, обязательные поля в моделях, которые не установлены, вызывают ошибки машинописного текста.Есть ли способ иметь строгость tsc с обратной связью 4?

Взяв пример кода в их документации:

@model()
export class Todo extends Entity {
  @property({
    type: 'number',
    id: true,
  })
  id?: number;

  @property({
    type: 'string',
    required: true,
  })
  title: string;

  @property({
    type: 'string',
  })
  desc?: string;

  @property({
    type: 'boolean',
  })
  isComplete: boolean;

  @belongsTo(() => TodoList)
  todoListId: number;

  getId() {
    return this.id;
  }

  constructor(data?: Partial<Todo>) {
    super(data);
  }
}

Если вы включите strict в компиляторе tsconfig.jsonпараметры, вы получите ошибки, такие как:

Property 'title' has no initializer and is not definitely assigned in the constructor. 

Редактировать: я надеюсь, что способ, который не предполагает наличие по умолчанию.

Edit2: После просмотраСнова код, я понял, что на самом деле работает следующее.

  constructor(data: Todo) {
    super(data);
    this.title = data.title;
    this.isComplete = data.isComplete;
  }

1 Ответ

0 голосов
/ 07 февраля 2019

Привет от команды LoopBack ?

Хороший улов!Мы не учитывали этот аспект при разработке наших классов моделей.

Я думаю, что эта проблема вызвана установкой strictPropertyInitialization.Цитирование из документов TypeScript:

Убедитесь, что в конструкторе инициализированы неопределенные свойства класса.

Я могу видеть, как наши текущие определения типов позволяют разработчикам создавать экземпляры модели, которыенедействительны, потому что некоторые обязательные свойства не были инициализированы.

Не могли бы вы открыть проблему GitHub в нашем проекте, чтобы мы могли дополнительно обсудить, как решить эту проблему?

А пока можно попробовать отключить strictPropertyInitialization в вашем tsconfig.json?

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