【问题标题】:Angular2 importing syntax: "import * as <foo>" vs "import {<foo>}"Angular2 导入语法:"import * as <foo>" vs "import {<foo>}"
【发布时间】:2016-09-25 03:18:12
【问题描述】:

我看到了两种不同的模块导入方式。

大多数导入看起来像'import {&lt;something&gt;} (即import { Component } from '@angular/core';

其他导入如'import * as &lt;something&gt;(即import * as _ from "lodash";

据我了解,在使用 typings(即typings install lodash=npm --save)而不是 Angular2 模块将 vanilla js 模块导入项目时,您使用后一种方法导入是对吗?

如果我的假设是正确的,您是否以相同的方式使用两个导入的类/模块(,当您声明它们在 Components 类中使用时)?

【问题讨论】:

    标签: javascript angular import typescript-typings angular2-injection


    【解决方案1】:

    使用 import 作为该模块中的别名,当有两个或多个同名的导入组件时很有帮助,不使用别名,后面的组件将覆盖第一个。

    可以有多个命名导出:

    //------ lib.js ------
    export const sqrt = Math.sqrt;
    export function square(x) {
        return x * x;
    }
    export function diag(x, y) {
        return sqrt(square(x) + square(y));
    }
    
    //------ main.js ------
    import { square, diag } from 'lib';
    console.log(square(11)); // 121
    console.log(diag(4, 3)); // 5
    You can also import the complete module:
    
    //------ main.js ------
    import * as lib from 'lib';
    console.log(lib.square(11)); // 121
    console.log(lib.diag(4, 3)); // 5
    

    【讨论】:

    • 谢谢,我觉得自己像个白痴,* 有点把那个给丢了。
    猜你喜欢
    • 2015-11-21
    • 1970-01-01
    • 2023-03-11
    • 2012-02-25
    • 2012-10-22
    相关资源
    最近更新 更多