您可以在 typescript/angular 中导出之前创建一个 class 吗? | TSLint:未使用的表达式,需要赋值或函数调用

Can you create a class before exporting it in typescript/angular? | TSLint: unused expression, expected an assignment or function call

我来自 React 世界 - 我非常熟悉通过 index.js 启动应用程序的基本概念,而不必处理任何 html 或任何事情。在那些定义视图的 javascript 文件中,它们都通过 importexport 彼此可用,其中 export default 表示默认导入将是该对象,并且只是 export 允许从同一个文件导入多个对象。

综上所述,angular 有什么不同吗?

虽然我在努力学习它,但我尝试做一些简单的事情并创建一个日志记录class,这必须足够简单,对吧。所以它看起来像这样,这就是我在 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: unused expression, expected an assignment or function call...

在最后一行。我可以不在导出之前创建 classes 吗?

我知道我看过的每个教程都包含导出 class 中的所有内容,这是我不习惯的(所以这就是我尝试以其他方式进行的原因)但是如果那是只是 Angular 最佳实践,那就这样吧。

TLDR 为什么上面的代码会出错

这不是关于框架,而是关于 TypeScript 与 JavaScript。我猜你在使用 React 时使用过 JavaScript 模块。在 Typescript 中,语法有点不同。用打字稿写下你想要的...

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

您可以阅读有关 TypeScript's modules 的更多信息。