2016-11-20 11 views
6

Trong nguyên cảo handbook vài kỹ thuật cho các module nhập khẩu được mô tả:Làm cách nào để nhập tất cả các mô-đun từ một thư mục trong TypeScript?

  • nhập một xuất khẩu duy nhất từ ​​một module: import { ZipCodeValidator } from "./ZipCodeValidator";
  • nhập một xuất khẩu duy nhất từ ​​một mô-đun và đổi tên nó: import { ZipCodeValidator as ZCV } from "./ZipCodeValidator";
  • nhập toàn bộ mô-đun: import * as validator from "./ZipCodeValidator";

Tôi hy vọng có thêm một tùy chọn nữa nhưng không nơi nào tôi có thể tìm thấy. Có thể nhập tất cả các mô-đun từ một thư mục nhất định không?

Tôi đoán cú pháp phải nhiều hơn hoặc ít hơn như thế này: import * from "./Converters".

+0

Bản sao có thể có của [Mô-đun 1.8 kiểu: nhập tất cả tệp từ thư mục] (http://stackoverflow.com/questions/38158429/typescript-1 -8-modules-import-all-files-from-folder) –

Trả lời

11

Không thể thực hiện điều này. Điều mà hầu hết mọi người làm là tạo một tệp index.js tái xuất tất cả các tệp trong cùng một thư mục.

Ví dụ:

my-module/ 
    a.ts 
    b.ts 
    index.ts 

a.ts

export default function hello() { 
    console.log("hello"); 
} 

b.ts

export default function world() { 
    console.log("world"); 
} 

index.ts

export { default as A } from "./a"; 
export { default as B } from "./b"; 

Tên chỉ mục có thể bị xóa (giống như trong javascript):

import * as whatever from "./my-module"; 

console.log(whatever); 
// Logs: { A: [Function: hello], B: [Function: world] } 
+0

cách viết test case nếu tất cả các file được thêm vào cũng được export trong index.ts? như nếu một d.ts và không được thêm vào index.ts làm thế nào để tránh tình huống này theo chương trình – Raghavendra

+0

@Raghavendra Vì mọi thứ đều là một 'đối tượng', người ta có thể đơn giản lặp qua các phím. Một cái gì đó như: 'import * as foo from" ./bar "; console.log (Object.keys (foo) .length) // bản ghi nhập khẩu count' – marvinhagemeister

+0

đây không phải là những gì tôi đã yêu cầu đưa câu trả lời ở trên như ví dụ tôi muốn viết kiểm tra để kiểm tra xem họ đã thêm tất cả a.ts, b .ts trong tệp index.ts? – Raghavendra

Các vấn đề liên quan