大括号在import语句中意味着什么?

时间:2017-10-04 15:50:30

标签: typescript

在TypeScript手册的Shorthand Ambient Modules部分,它显示了一个这样的导入语句:

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

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

大括号实际上意味着什么?你会如何选择放入大括号的东西?

1 个答案:

答案 0 :(得分:3)

TL; DR

大括号之间的内容是指定的导出。

这是一个经典之作:

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

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

但是为了使代码更短更清晰,命名导出Component也会在其名称下导入,因此可以直接使用而不使用React名称空间前缀

该语法应该等同于

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

最后注意事项:您实际上可以在导入时重命名

import {Component as TheComponent} from 'react'

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