Можете ли вы создать класс, прежде чем экспортировать его в машинопись / angular? | TSLint: неиспользуемое выражение, ожидание назначения или вызова функции - PullRequest
1 голос
/ 22 февраля 2020

Я из реактивного мира - я довольно хорошо знаком с базовыми c концепциями запуска приложения через index.js и отсутствия необходимости иметь дело с html или чем-то еще. В этих javascript файлах, которые определяют представления, все они становятся доступными друг другу через import и export, где export default означает, что импорт по умолчанию будет этим объектом, и только export допускает возможность импорта нескольких объектов из одного файла.

С учетом всего сказанного, все ли отличается в angular?

Пока я пытался изучить его, я пытался сделать что-то простое и создать класс журналирования, который должен быть достаточно простым, верно. Вот так это выглядит, и вот как я написал бы это в React:

import {Injectable} from '@angular/core';

@Injectable()
class LoggerService {
  info(msg: any) {
    console.log(msg);
  }

  warn(msg: any) {
    console.warn(msg);
  }

  error(msg: any) {
    console.error(msg);
  }
}

export LoggerService;

Однако, когда я это сделал, мой TSLint включился и предупредил меня о

TSLint: неиспользуемое выражение, ожидание назначения или вызова функции ...

в последней строке. Могу ли я не создавать классы до их экспорта?

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

TLDR, почему я получаю сообщение об ошибке с кодом выше

1 Ответ

2 голосов
/ 22 февраля 2020

Речь идет не о фреймворке, а о TypeScript против JavaScript. Я предполагаю, что вы использовали JavaScript модули при работе с React. В Typescript синтаксис немного отличается. Чтобы написать, что вы хотите в машинописи ...

class LoggerService {
 // ...
}
export { LoggerService };

Вы можете прочитать больше о модулях TypeScript .

...