Tôi khá mới đối với JavaScript và đã phải vật lộn với hàng nhập khẩu gần đây. Có một điều tôi không thể quấn quanh đầu.Mô-đun nhập khẩu từ nhập khẩu 'mô-đun' khi không xuất được mặc định là gì và tại sao nó khác với nhập * dưới dạng Mô-đun?
Trong mô-đun nút cũ hơn (phần lớn là để xem ánh sáng trước ES6), có thể được cài đặt bằng cách sử dụng npm, chẳng hạn như express
, thường không xuất được mặc định.
IDE của tôi (WebStorm) đánh dấu dòng sau với Xuất mặc định không được khai báo trong mô-đun nhập thông báo.
import express from 'express';
Thư này có thể được phá vỡ bằng cách cố gắng để nhập khẩu toàn bộ mô-đun như một bí danh sử dụng
import * as express from 'express';
ngầm nói với IDE của tôi chỉ nhập khẩu tất cả mọi thứ và đặt tên là express
, tuy nhiên làm như vậy sau đó dẫn đến một express không phải là lỗi chức năng khi cố gắng khởi tạo ứng dụng trên dòng sau.
const app = express();
Đặc biệt nhập ban đầu (không có bí danh) hoạt động.
Chính xác những gì được nhập bằng cách sử dụng câu lệnh nhập khẩu mà không có bí danh, khi không xuất mặc định được xác định? Tôi nghĩ rằng đó là toàn bộ mô-đun, nhưng nó không có vẻ như vậy.
Đây có thể là vấn đề với IDE của bạn mà không biết cách trình xử lý mô-đun của bạn xử lý các mô-đun trước ES6. Nếu nó hoạt động, bạn nên sử dụng nó và tắt thông báo hoặc tìm cách tuyên bố xuất các mô-đun được liên kết. – Bergi
@Bergi Thông báo IDE không phải là vấn đề cũng không phải là vấn đề của câu hỏi. Tôi quan tâm hơn đến những gì được nhập khẩu như mặc định khi không có nhập khẩu như vậy được tuyên bố, như IDE của tôi chỉ ra. Tôi nên có lẽ đã nói tôi đang sử dụng webpack và babel với es-2015 cài sẵn để đóng gói các mô-đun vào một bó. Tôi không có thời gian, nhưng tôi sẽ chỉnh sửa câu hỏi khi tôi làm. –
@DavidPacker WebStorm ngừng khiếu nại sau khi tải xuống và bật các tệp định nghĩa loại (ví dụ: 'express.d.ts') từ [github.com/DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped) trong * Setting> Ngôn ngữ & Khung> JavaScript> Thư viện> Tải xuống> express> Tải xuống và cài đặt * –