【问题标题】:import { * } from "@angular" instead of "angular2"从“@angular”而不是“angular2”导入 { * }
【发布时间】:2016-09-05 08:10:31
【问题描述】:

我在 angular2 中有点困惑。许多例子显示像

import { Component } from "@angular/core"

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

import { Component } from "angular2/core" 

这两者有什么区别?

【问题讨论】:

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

标签: typescript angular commonjs


【解决方案1】:

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

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

【讨论】:

  • 知道为什么要切换吗?
  • @RyanRahlf AFAIK NPM 上的命名空间有名称限制,@ 就是其中之一。他们也不希望为不同的 Angular 版本使用不同的命名空间,只为所有 Angular 提供一个命名空间。
  • 如果您在 r.c. 项目中使用低于 beta.17 的模块会怎样?那你用什么语法呢?
  • 什么 beta 17 模块?我敢肯定,如果版本不同,Angular2 模块将无法协同工作。或许运气好的话,如果它们的版本只有一点点不同,你就可以做一些事情,但总是有太多的变化,这是不太可能的。
  • @GünterZöchbauer。如果我只导入import { Component } from '@angular/core'这样的一个组件而不是import * from '@angular/core',会不会影响代码的有效性,而不是乍一看?
猜你喜欢
  • 2016-10-17
  • 2018-02-10
  • 2018-12-17
  • 2019-08-24
  • 2011-01-04
  • 1970-01-01
  • 2017-07-03
  • 1970-01-01
  • 2022-01-05
相关资源
最近更新 更多