{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/TypeScript/issues/1945","labels_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/1945/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/1945/comments","events_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/1945/events","html_url":"https://github.com/Microsoft/TypeScript/issues/1945","id":56702581,"number":1945,"title":"Type alias = {} question","user":{"login":"jbondc","id":199519,"avatar_url":"https://avatars.githubusercontent.com/u/199519?v=3","gravatar_id":"","url":"https://api.github.com/users/jbondc","html_url":"https://github.com/jbondc","followers_url":"https://api.github.com/users/jbondc/followers","following_url":"https://api.github.com/users/jbondc/following{/other_user}","gists_url":"https://api.github.com/users/jbondc/gists{/gist_id}","starred_url":"https://api.github.com/users/jbondc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbondc/subscriptions","organizations_url":"https://api.github.com/users/jbondc/orgs","repos_url":"https://api.github.com/users/jbondc/repos","events_url":"https://api.github.com/users/jbondc/events{/privacy}","received_events_url":"https://api.github.com/users/jbondc/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Microsoft/TypeScript/labels/Question","name":"Question","color":"d4c5f9"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-02-05T17:36:23Z","updated_at":"2015-02-07T14:20:19Z","closed_at":null,"body":"```javascript\r\ntype Json = {}\r\n\r\ninterface Data extends Json {\r\n    foo: string\r\n}\r\n```\r\nIf a type is an alias for {}, should an interface be allowed to extend it?\r\n"},"comment":{"url":"https://api.github.com/repos/Microsoft/TypeScript/issues/comments/73365994","html_url":"https://github.com/Microsoft/TypeScript/issues/1945#issuecomment-73365994","issue_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/1945","id":73365994,"user":{"login":"jbondc","id":199519,"avatar_url":"https://avatars.githubusercontent.com/u/199519?v=3","gravatar_id":"","url":"https://api.github.com/users/jbondc","html_url":"https://github.com/jbondc","followers_url":"https://api.github.com/users/jbondc/followers","following_url":"https://api.github.com/users/jbondc/following{/other_user}","gists_url":"https://api.github.com/users/jbondc/gists{/gist_id}","starred_url":"https://api.github.com/users/jbondc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbondc/subscriptions","organizations_url":"https://api.github.com/users/jbondc/orgs","repos_url":"https://api.github.com/users/jbondc/repos","events_url":"https://api.github.com/users/jbondc/events{/privacy}","received_events_url":"https://api.github.com/users/jbondc/received_events","type":"User","site_admin":false},"created_at":"2015-02-07T14:20:19Z","updated_at":"2015-02-07T14:20:19Z","body":"So scratch some of those ideas. \r\n1) Keep type= alias as is but disallow { body }\r\n2) Add interface= alias to express  {} or   { body }\r\n```javascript\r\ninterface RefPoint = {\r\n    x: number;\r\n    y: number;\r\n};\r\n\r\ninterface Point extends RefPoint {}\r\n```\r\n"}}