2016-03-08 28 views
7
import {Component, ...actions} from '../MyModule'; 

Dường như đang ném một lỗi linting. Có lý do tại sao bạn không thể "lan truyền" trên một tuyên bố nhập khẩu ES6?Cấu trúc phân tán Lây lan Nhập khẩu ES6

+0

Bạn mong đợi điều gì sẽ xảy ra? Cung cấp cho bạn tất cả các hàng xuất khẩu khác trừ đi 'Hợp phần'? – nils

+1

Hãy xem thông số: http://www.ecma-international.org/ecma-262/6.0/#sec-imports ký hiệu cho _NamedImports_ có thể trông giống như ký hiệu đối tượng nhưng nó khác biệt (đó là lý do tại sao có không phá hủy). Nếu _MyModule_ xuất một đối tượng bạn có thể thực hiện việc hủy trong một nhiệm vụ. – Matthisk

+1

Chủ yếu là do các nhà khai thác truyền thống không phải là một phần của ES6, mà là một đề xuất cho một số phiên bản trong tương lai. – Bergi

Trả lời

13

Cú pháp nhập ES6 không bị hủy hoại, đơn giản như vậy. Cú pháp bắt đầu bằng {, nhưng định dạng của nó hoàn toàn khác và cách thức xử lý được thực hiện khá khác nhau. Ví dụ: bạn có thể đổi tên nhập bằng

import {Component as MyComponent} from './MyModule'; 

rõ ràng không phải là đối tượng theo nghĩa đen.

Nếu bạn cần một đối tượng mà bạn có thể sử dụng để tham khảo hàng nhập khẩu như tài sản, bạn có thể làm

import * as MyModule from '../MyModule'; 

sau đó sử dụng MyModule.<exportName>. Nếu mục tiêu của bạn là đặc biệt để có được một đối tượng chứa tất cả các giá trị xuất, ngoại trừ Component thì bạn luôn có thể thực hiện hủy sau, ví dụ:

const {Component, ...actions} = MyModule; 
Các vấn đề liên quan