2015-03-06 14 views
14

Có một hình ảnh rất thú vị được đăng trong TypeScript blog chính thức.@ (tại dấu) có nghĩa là gì trong ví dụ TypeScript mới nhất (có lẽ là v1.5)?

Wierd syntax

Tôi tự hỏi những gì @ (tại dấu) biểu tượng được làm gì ở đó kể từ (như xa như tôi biết) nó không thể được sử dụng trong định danh JavaScript.

+2

tôi sẽ đọc trên atscript. nó được gọi là chú thích. –

+5

Trong TypeScript, toán tử "@" biểu thị một trình trang trí (trong ví dụ trên, một trình trang trí lớp). Bạn có thể tìm hiểu thêm về các trang trí trong [tài liệu TypeScript] (https://www.typescriptlang.org/docs/handbook/decorators.html). – sherb

Trả lời

11

Tin tức lớn trong tuần này là sự hợp nhất của AtScript và TypeScript.

Ví dụ sau đây từ tài liệu AtScript ...

@Component() 
class MyApp { 
    server:Server; 
    @Bind('name') name:string; 
    @Event('foo') fooFn:Function; 
    @Inject() 
    constructor(@parent server:Server) {} 
    greet():string {} 
} 

biên dịch thành mã JavaScript sau ...

function MyApp() {} 
MyApp.properties = { 
    'server': { is: Server }, 
    'name': { is:string, 
      annotate: [new Bind('name']}, 
    'fooFn': { is:Function, 
      annotate:[new Event('foo')]} 
} 
MyApp.annotate = [ 
    new Component(), 
    new Inject() 
]; 
MyApp.parameters = [ 
    {is:Server, annotate:[parent]} 
]; 
MyApp.prototype.greet = function() {} 
MyApp.prototype.greet.returns = string; 

AtScript được lên kế hoạch để trở thành một lớp trên đầu trang của nguyên cảo (tức là một siêu thiết lập của một siêu thiết lập) - nhưng bây giờ là two projects are one.

Annotations are described thus:

  • AtScript chú thích cú pháp chỉ là một cách viết tắt của việc đặt thông tin tương tự trong ES5. Sẽ là hợp lý nếu một nhà phát triển ES5 viết các chú thích này theo cách thủ công. Một thư viện trợ giúp thậm chí có thể được cung cấp.
  • Chú thích chỉ có thể được đặt trên các chức năng.

  • Chú thích được đặt trên lớp là chú thích được đặt trên hàm tạo hàm của lớp.

  • Chú thích được đặt trên một trường được di chuyển đến hàm hàm tạo.

  • Tất cả chú thích được dịch thành thuộc tính trên hàm.

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