{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/TypeScript/issues/3496","labels_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/3496/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/3496/comments","events_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/3496/events","html_url":"https://github.com/Microsoft/TypeScript/issues/3496","id":87853882,"number":3496,"title":"recursive type definitions","user":{"login":"opensrcken","id":11646382,"avatar_url":"https://avatars.githubusercontent.com/u/11646382?v=3","gravatar_id":"","url":"https://api.github.com/users/opensrcken","html_url":"https://github.com/opensrcken","followers_url":"https://api.github.com/users/opensrcken/followers","following_url":"https://api.github.com/users/opensrcken/following{/other_user}","gists_url":"https://api.github.com/users/opensrcken/gists{/gist_id}","starred_url":"https://api.github.com/users/opensrcken/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opensrcken/subscriptions","organizations_url":"https://api.github.com/users/opensrcken/orgs","repos_url":"https://api.github.com/users/opensrcken/repos","events_url":"https://api.github.com/users/opensrcken/events{/privacy}","received_events_url":"https://api.github.com/users/opensrcken/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-06-12T21:11:19Z","updated_at":"2015-06-15T15:09:31Z","closed_at":null,"body":"I have a recursive type definition for JSON Serializable entities:\r\n```typescript\r\nexport type IJSONSerializable = IJSONSerializableObject | number | string | Array<IJSONSerializableObject | number | string>;\r\n\r\ninterface IJSONSerializableObject {\r\n    [paramKey: string]: IJSONSerializable\r\n}\r\n```\r\n\r\nI would like to be able to write the following, but get a circular reference error:\r\n```typescript\r\nexport type IJSONSerializable = {[paramKey: string]: IJSONSerializable} | number | string | Array<IJSONSerializable>;\r\n```\r\n\r\nHow difficult would it be to address this limitation of the type system?"},"comment":{"url":"https://api.github.com/repos/Microsoft/TypeScript/issues/comments/112100784","html_url":"https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-112100784","issue_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/3496","id":112100784,"user":{"login":"opensrcken","id":11646382,"avatar_url":"https://avatars.githubusercontent.com/u/11646382?v=3","gravatar_id":"","url":"https://api.github.com/users/opensrcken","html_url":"https://github.com/opensrcken","followers_url":"https://api.github.com/users/opensrcken/followers","following_url":"https://api.github.com/users/opensrcken/following{/other_user}","gists_url":"https://api.github.com/users/opensrcken/gists{/gist_id}","starred_url":"https://api.github.com/users/opensrcken/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opensrcken/subscriptions","organizations_url":"https://api.github.com/users/opensrcken/orgs","repos_url":"https://api.github.com/users/opensrcken/repos","events_url":"https://api.github.com/users/opensrcken/events{/privacy}","received_events_url":"https://api.github.com/users/opensrcken/received_events","type":"User","site_admin":false},"created_at":"2015-06-15T15:09:31Z","updated_at":"2015-06-15T15:09:31Z","body":"Edited previous comments for clarity."}}