{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/TypeScript/issues/4462","labels_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/4462/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/4462/comments","events_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/4462/events","html_url":"https://github.com/Microsoft/TypeScript/issues/4462","id":103198443,"number":4462,"title":"Overloading of interface properties having function types is inconsistent between function signature syntaxes","user":{"login":"rotemdan","id":8589488,"avatar_url":"https://avatars.githubusercontent.com/u/8589488?v=3","gravatar_id":"","url":"https://api.github.com/users/rotemdan","html_url":"https://github.com/rotemdan","followers_url":"https://api.github.com/users/rotemdan/followers","following_url":"https://api.github.com/users/rotemdan/following{/other_user}","gists_url":"https://api.github.com/users/rotemdan/gists{/gist_id}","starred_url":"https://api.github.com/users/rotemdan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rotemdan/subscriptions","organizations_url":"https://api.github.com/users/rotemdan/orgs","repos_url":"https://api.github.com/users/rotemdan/repos","events_url":"https://api.github.com/users/rotemdan/events{/privacy}","received_events_url":"https://api.github.com/users/rotemdan/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Microsoft/TypeScript/labels/By%20Design","name":"By Design","color":"fbca04"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-08-26T07:37:56Z","updated_at":"2015-08-26T21:06:56Z","closed_at":"2015-08-26T13:14:46Z","body":"```ts\r\ninterface A \r\n{\r\n\tfunc(arg: string): boolean;\r\n\tfunc(arg: number): string;\r\n} // OK!\r\n\r\ninterface B \r\n{\r\n\tfunc: (arg: string) => boolean;\r\n\tfunc: (arg: number) => string;\r\n} // Error! Duplicate identifier 'func'.\r\n```\r\n?"},"comment":{"url":"https://api.github.com/repos/Microsoft/TypeScript/issues/comments/135170486","html_url":"https://github.com/Microsoft/TypeScript/issues/4462#issuecomment-135170486","issue_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/4462","id":135170486,"user":{"login":"rotemdan","id":8589488,"avatar_url":"https://avatars.githubusercontent.com/u/8589488?v=3","gravatar_id":"","url":"https://api.github.com/users/rotemdan","html_url":"https://github.com/rotemdan","followers_url":"https://api.github.com/users/rotemdan/followers","following_url":"https://api.github.com/users/rotemdan/following{/other_user}","gists_url":"https://api.github.com/users/rotemdan/gists{/gist_id}","starred_url":"https://api.github.com/users/rotemdan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rotemdan/subscriptions","organizations_url":"https://api.github.com/users/rotemdan/orgs","repos_url":"https://api.github.com/users/rotemdan/repos","events_url":"https://api.github.com/users/rotemdan/events{/privacy}","received_events_url":"https://api.github.com/users/rotemdan/received_events","type":"User","site_admin":false},"created_at":"2015-08-26T21:06:56Z","updated_at":"2015-08-26T21:06:56Z","body":"Thanks for the comprehensive answer. The original intention of the issue was not necessarily to take a predetermined stand at what should be done, e.g. whether to add an equivalent signature overloading syntax/support for the secondary syntax. I think that since this is a redundant syntax anyway (and apparently the secondary one, though I actually used it exclusively for a while so I assumed overloading in interfaces wasn't even possible!) it wouldn't be very critical at this point to hasten in deciding whether to add additional functionality for it. \r\n\r\nI am a bit curious though why was there a secondary syntax in the first place?\r\n\r\nTo begin answering my own question, I just realized that \"expression bodied members\" are actually possible in TypeScript :) and I've even used them several times before but seem to have forgotten about it. So I guess that could be a valid reason.. at least to \"match\" it (for completion). Although in the context of an interface it still is interchangeable with the \"normal\" syntax:\r\n```ts\r\ninterface T\r\n{\r\n\tf(a: number): string\r\n}\r\n\r\nclass Test implements T\r\n{\r\n\tf = (a: number) => \"abcd\";\r\n} // OK!\r\n```\r\nThough I don't see it as a problem. Are there any other reasons?"}}