"@"/"核心"的"import {Component}"中的"@"符号是什么意思;" 声明?

Gil*_*tes 50 typescript angular

我正在阅读Angular 2 "5 Min Quickstart"并且有这样一条线:

import { Component } from '@angular/core';"
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚,@这个导入中的符号是什么?TypeScript文档也没有说明这一点.

这是什么意思?

ray*_*ray 25

同样重要的是,您也可以使用@非npm包的符号范围.您可以在项目中使用它作为引用不同目录的简短方法.

import { MyService } from '@services/my.service';
import { HelloWorldComponent } from '@components/hello-world.component';
Run Code Online (Sandbox Code Playgroud)

代替

import { MyService } from '../../../../my.service';
import { HelloWorldComponent } from '../shared/deeply/nested/hello-world/hello-world.component';
Run Code Online (Sandbox Code Playgroud)

为此,您只需配置tsconfig.json文件(在项目的根目录下),如下所示:

{
  "compileOnSave": false,
  "compilerOptions": {

    // omitted...

    "baseUrl": "src",
    "paths": {
      "@services/*": ["app/path/to/services/*"],
      "@components/*": ["app/somewhere/deeply/nested/*"],
      "@environments/*": ["environments/*"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

查看Angular Firebase的完整详细信息

  • 仅供其他人知道,如果您在 VS Code 中看到“找不到模块”,CMD + SHIFT + P 然后输入重新加载窗口,您应该停止出现错误。(假设对于 win/linux:CTRL + SHIFT + P) (4认同)

hoo*_*ogw 13

@ SCOPE_NAME /包名

这是NPM功能,范围名称,@和斜杠/之间的任何内容都将是您的范围名称.

npm范围文件


L.q*_*ter 9

这只是Angular使用的命名约定.自发布以来,他们将其重命名为@ angular/core而不是angular2/core.

它引用了框架的核心组件.

(发现在post- angularjs 2中,没有找到角度材料@ angular/core)

  • 我认为它不仅仅是......在您引用的问题中,它解释了@prefix允许相关的npm包在一个带有@前缀的文件夹下更整齐地分组,而不是污染node_module文件夹根目录.有关详细信息,请参阅https://docs.npmjs.com/getting-started/scoped-packages (11认同)