Tôi đang cố gắng sử dụng Angular 1.x với TypeScript 1.5.3 và SystemJS. Trang index.html
được thiết lập thành System.import('bootstrapper')
sẽ khởi động mọi thứ.Sử dụng Angular 1.x với TypeScript 1.5 và SystemJS
bootstrapper.ts
được biên soạn để bootstrapper.js
và hoạt động tốt miễn là nó không sử dụng góc (ví dụ: làm chỉ là một console.log()
làm việc ok)
Bây giờ, tôi muốn nhập khẩu và sử dụng góc để bootstrap nó. Tôi đã thực hiện jspm install angular
và tôi cũng đã cài đặt một số kiểu chữ cho góc sử dụng tsd
. Các kiểu đánh máy được tham chiếu ở đầu tệp bootstrap.ts
.
Thật không may khi thực hiện import angular from 'angular'
không biên dịch, tôi nhận được Module "angular" has no default export
. Câu hỏi của tôi là:
- Tại sao không
import angular from 'angular'
biên dịch? Nhìn vào tập tinangular.d.ts
Tôi thấydeclare module 'angular'{ export = angular; }
, nếu tôi hiểu chính xác, là xuất mặc định từ góc mô-đun của một biến (được định nghĩa ở trên trong tệp nhập)declare var angular: angular.IAngularStatic
- Tôi nhận thấy rằng thực hiện biên dịch
import 'angular'
và sau đó tôi có thể tham khảoangular
và làm ví dụangular.module(...)
, nhưng tôi không nghĩ rằng tôi hiểu chính xác cách thức hoạt động của nó. Không nênimport 'angular'
thực hiện "nhập không đúng", tức là chỉ chạy mô-đun cho các tác dụng phụ của nó? Nếu đúng như vậy, điều đó có nghĩa là việc nhập này thực sự đăng kýangular
trong phạm vi toàn cầu?
Tôi khá chắc chắn tôi không hiểu chính xác cách mô-đun/loại tệp định nghĩa hoạt động trong Typescript, cảm ơn trước vì đã giải thích.
Chỉ cần lưu ý, 'nhập góc 'không cố gắng nhập một cái gì đó có tên' góc cạnh', nó đã cố gắng nhập một cái gì đó có tên 'default' vào một ràng buộc được gọi là' góc cạnh'. – loganfsmyth
@loganfsmyth Cảm ơn bạn, đã kết hợp với niềng răng, cảm ơn – thoughtrepo
Không chắc chắn tôi nhận được nó. Bạn có đang nói rằng trong 'export = angular' thì' angular' dùng để chỉ module được định nghĩa tiếp theo trong tệp d.ts như 'define module angular' thay vì variabile được khai báo ở trên là' declare var angular: angular.IAngularStatic'? Hoặc là nó đề cập đến biến, nhưng biến là một loại giao diện nó xuất khẩu bằng cách nào đó mà giao diện như một không gian tên? Nếu đây là trường hợp thì tôi đoán 'khai báo var x' không thực sự tạo ra một biến nó chỉ là một bí danh cho' module.interface'? –