2017-10-04 99 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

太好了,謝謝! –

相關問題