问题 从“@angular”而不是“angular2”导入{*}


我在angular2中有点困惑。很多例子都表明了

import { Component } from "@angular/core"

但实际上在 node_module 有 angular2目录存在。所以逻辑上它应该是

import { Component } from "angular2/core" 

这两个有什么区别?


11286
2018-05-10 11:17


起源

Angular应用程序是模块化的。它们由许多文件组成,每个文件都用于一个目的。 Angular本身就是模块化的。它是一个库模块的集合,每个库模块都由几个相关的功能组成,我们将用它来构建我们的应用程序。当我们需要模块中的某些东西时,我们会导入它。这里我们从@ angular / core导入Angular Component装饰器函数,因为我们需要它来定义我们的组件。 app / app.component.ts(import)从'@ angular / core'导入{Component}; - mayur
@mayur,我想你可能误解了这个问题。 OP不会询问使用导入函数的原因或原因,但是他们询问是否使用了导入函数 "@" 符号。 Gunter的答案解释了这一点。查看他们发布的链接中的更改日志。 - redfox05


答案:


这是从beta.17到rc.0的更新引入的更改

https://github.com/angular/angular/blob/master/CHANGELOG.md#200-rc0-2016-05-02


9
2018-05-10 11:18



有什么想法切换? - Ryan Rahlf
@RyanRahlf AFAIK对NPM上的名称空间有名称限制 @ 就是其中之一。他们也不想为不同的Angular版本使用不同的命名空间,只需要一个Angular版本。 - Günter Zöchbauer
如果你使用下面的模块怎么办? beta.17 在一个 钢筋混凝土 项目?那你使用哪种语法? - garrettmac
什么beta 17模块?我确定如果版本不同,Angular2模块将无法一起工作。也许运气好的话,如果版本只有一点点不同,你可以做些工作,但总是有很多变化,这是不太可能的。 - Günter Zöchbauer
@GünterZöchbauer。如果我只导入一个组件,如 import { Component } from '@angular/core' 代替 import * from '@angular/core',它会影响代码的有效性,而不是乍一看? - Suren Srapyan