{"action":"created","issue":{"url":"https://api.github.com/repos/angular/ts2dart/issues/209","labels_url":"https://api.github.com/repos/angular/ts2dart/issues/209/labels{/name}","comments_url":"https://api.github.com/repos/angular/ts2dart/issues/209/comments","events_url":"https://api.github.com/repos/angular/ts2dart/issues/209/events","html_url":"https://github.com/angular/ts2dart/issues/209","id":89401493,"number":209,"title":"Change how we handle IMPLEMENTS","user":{"login":"vsavkin","id":35996,"avatar_url":"https://avatars.githubusercontent.com/u/35996?v=3","gravatar_id":"","url":"https://api.github.com/users/vsavkin","html_url":"https://github.com/vsavkin","followers_url":"https://api.github.com/users/vsavkin/followers","following_url":"https://api.github.com/users/vsavkin/following{/other_user}","gists_url":"https://api.github.com/users/vsavkin/gists{/gist_id}","starred_url":"https://api.github.com/users/vsavkin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vsavkin/subscriptions","organizations_url":"https://api.github.com/users/vsavkin/orgs","repos_url":"https://api.github.com/users/vsavkin/repos","events_url":"https://api.github.com/users/vsavkin/events{/privacy}","received_events_url":"https://api.github.com/users/vsavkin/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-18T21:24:31Z","updated_at":"2015-06-18T23:48:30Z","closed_at":null,"body":"Currently the following\r\n\r\n```\r\n@IMPLEMENTS(MyInterface)\r\nclass MyClass {}\r\n```\r\n\r\nwill be translated into:\r\n```\r\nclass MyClass implements MyInterface {}\r\n```\r\n\r\nThis issue with this approach is that MyInterface cannot actually be an interface in TS. It has to be a class. I think we should change it into something like this:\r\n \r\n```\r\n@IMPLEMENTS<MyInterface>\r\nclass MyClass {}\r\n```\r\n\r\nSo TS does not need MyInterface to be present at runtime."},"comment":{"url":"https://api.github.com/repos/angular/ts2dart/issues/comments/113320522","html_url":"https://github.com/angular/ts2dart/issues/209#issuecomment-113320522","issue_url":"https://api.github.com/repos/angular/ts2dart/issues/209","id":113320522,"user":{"login":"mprobst","id":7208,"avatar_url":"https://avatars.githubusercontent.com/u/7208?v=3","gravatar_id":"","url":"https://api.github.com/users/mprobst","html_url":"https://github.com/mprobst","followers_url":"https://api.github.com/users/mprobst/followers","following_url":"https://api.github.com/users/mprobst/following{/other_user}","gists_url":"https://api.github.com/users/mprobst/gists{/gist_id}","starred_url":"https://api.github.com/users/mprobst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mprobst/subscriptions","organizations_url":"https://api.github.com/users/mprobst/orgs","repos_url":"https://api.github.com/users/mprobst/repos","events_url":"https://api.github.com/users/mprobst/events{/privacy}","received_events_url":"https://api.github.com/users/mprobst/received_events","type":"User","site_admin":false},"created_at":"2015-06-18T23:48:30Z","updated_at":"2015-06-18T23:48:30Z","body":"You mean so that *Dart* does not need `MyInterface` to be present at runtime?\r\n\r\nCan't we just use TypeScript's native `implements`?"}}