2012-11-24 26 views
8

Mục 3.5.4 của các trạng thái thông số: "Loại mảng của biểu mẫu ElementType [] tương đương với loại đối tượng có chữ ký chỉ mục [index: number]: ElementType" nhưng điều này có vẻ không phải là trường hợp, ví dụ:Chữ ký chỉ mục đối tượng có tương đương với các loại mảng không?

var a: {[index: number]: string;}; 
var b: string[]; 
a = ['1','2']; // ERROR: Cannot convert 'string[]' to '{ [index: number]: string; }' 
b = ['1','2']; // OK 

Tôi thiếu gì ở đây?

+0

bản sao có thể có của [Có thể xác định giao diện người lập chỉ mục cho số \ [\]?] (Http://stackoverflow.com/questions/13074851/possible-to-define-indexer-interface-for-number) –

+0

Mục công việc : http://typescript.codeplex.com/workitem/331 –

+0

Tôi nghĩ rằng bạn là chính xác, đó là cùng một vấn đề (các loại được lập chỉ mục không tương đương với Mảng), dường như trái với spec. Tôi chỉ có thể chuyển nhượng ví dụ của mình để làm việc với một dàn diễn viên: ' a = [' 1 ',' 2 ']; ' –

Trả lời

1

Đúng, đây là lỗi đã biết trong trình biên dịch. Nó sẽ được sửa trong bản phát hành trong tương lai. Cách giải quyết tốt nhất là một diễn viên (ở hai bên của bài tập - a = <string[]>['1', '2'] có thể trông hơi lạ).

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