2017-10-04 85 views
1

了打字稿手册,在部分Shorthand Ambient Modules,它显示了一个import语句是这样的:花括号在导入声明中的含义是什么?

import x, {y} from "hot-new-module"; 

无处没有解释为什么在y上述声明是在大括号中。如果xy都在大括号内(即import {x, y} from...),那么它可能不会引起我的注意 - 但现在我想知道为什么一个人在里面,而不是另一个。

大括号实际上表示什么?你会如何选择把哪些东西放在花括号里?

+0

大括号表示导出类型,它是一个命名导出。这与默认导出不同,另一种类型。不同之处在于,命名导出允许对包进行别名。 – fungusanthrax

回答

3

TL; DR

括号之间善有善报是命名出口。

这里是一个典型的一个:

import React, { Component, PropTypes } from 'react' 

这将导入下React名称整个模块,因此你可以使用React.Component访问Component

但是,为了使代码更短,更清晰,命名出口Component也以其名义进口的,因此它可以直接使用,无需在React命名空间前缀

这句法应相当于

import {default as React, Component, PropTypes} from 'react' 

最后说明:您实际上可以重新导入

import {Component as TheComponent} from 'react' 

nb:需要导入React是JSX编译器的“限制”

+0

太好了,谢谢! –

相关问题