TypeScript:如何不使用相对路径来导入类?

Yan*_*ong 5 typescript electron angular

我目前正在使用 TypeScript 和 Angular2 开发一个 Electron 应用程序,为此我创建了许多不同的类,所有类都在单独的文件中。为了使我的应用程序的重构更容易,我希望在导入这些类时不必使用相对路径。
现在,要导入它们,我使用以下语法:import {Trigger} from './../../trigger/ts/trigger.component';
我想做的是使用如下所示的语法:import {Trigger} from 'trigger.component';
这可能吗?

Shi*_*pta 6

最好在 tsconfig.json 中使用以下配置

{
  "compilerOptions": {
    "...": "reduced for brevity",

    "baseUrl": "src",
    "paths": {
      "@app/*": ["app/*"],
      "@trigger/*": ["app/trigger/ts/*"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

对于你的情况,可以使用既做import {Trigger} from '@app/trigger/ts/trigger.component';import {Trigger} from '@trigger/trigger.component';或路径的任何级别,您可以配置。


Vla*_*vic 2

您可以创建一个文件,例如:components.ts,并在该组件中引用所有组件,例如:

export {Trigger} from '../trigger/ts/trigger.component'
export {Cmp} from '../cmp/ts/cmp.component'
...
Run Code Online (Sandbox Code Playgroud)

然后,当你想加载一个组件时,你可以这样做:

import {Trigger} from '../components.ts'
Run Code Online (Sandbox Code Playgroud)

这是对事物进行分组的好习惯。