{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T20:18:04Z","timestamp":1784233084392,"version":"3.55.0"},"publisher-location":"New York, NY, USA","reference-count":17,"publisher":"ACM","license":[{"start":{"date-parts":[[2017,1,2]],"date-time":"2017-01-02T00:00:00Z","timestamp":1483315200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2017,1,2]]},"DOI":"10.1145\/3018882.3018887","type":"proceedings-article","created":{"date-parts":[[2016,12,22]],"date-time":"2016-12-22T21:20:29Z","timestamp":1482441629000},"page":"111-122","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Refining types using type guards in TypeScript"],"prefix":"10.1145","author":[{"given":"Ivo Gabe","family":"de Wolff","sequence":"first","affiliation":[{"name":"Utrecht University, Netherlands"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jurriaan","family":"Hage","sequence":"additional","affiliation":[{"name":"Utrecht University, Netherlands"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2017,1,2]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-44202-9_11"},{"key":"e_1_3_2_1_2_1","volume-title":"Monotone type checker. https:\/\/github.com\/ivogabe\/ monotone-type-checker","author":"de Wolff I. G.","year":"2016","unstructured":"I. G. de Wolff . Monotone type checker. https:\/\/github.com\/ivogabe\/ monotone-type-checker , 2016 a. Accessed : 20-7-2016. I. G. de Wolff. Monotone type checker. https:\/\/github.com\/ivogabe\/ monotone-type-checker, 2016a. Accessed: 20-7-2016."},{"key":"e_1_3_2_1_3_1","volume-title":"Control flow based type guards - pull request 6959. https: \/\/github.com\/Microsoft\/TypeScript\/pull\/6959","author":"de Wolff I. G.","year":"2016","unstructured":"I. G. de Wolff . Control flow based type guards - pull request 6959. https: \/\/github.com\/Microsoft\/TypeScript\/pull\/6959 , 2016 b. Accessed : 20-7-2016. I. G. de Wolff. Control flow based type guards - pull request 6959. https: \/\/github.com\/Microsoft\/TypeScript\/pull\/6959, 2016b. Accessed: 20-7-2016."},{"key":"e_1_3_2_1_4_1","volume-title":"Flow \u2014 a static type checker for javascript. https:\/\/ flowtype.org","author":"de Wolff I. G.","year":"2016","unstructured":"I. G. de Wolff . TypeScript Blueprints . PACKT Publishing , 2016c. Facebook. Flow \u2014 a static type checker for javascript. https:\/\/ flowtype.org , 2016 . I. G. de Wolff. TypeScript Blueprints. PACKT Publishing, 2016c. Facebook. Flow \u2014 a static type checker for javascript. https:\/\/ flowtype.org, 2016."},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.5555\/1987211.1987225"},{"key":"e_1_3_2_1_7_1","volume-title":"enum, and boolean literal types - pull request 9407. https:\/\/github.com\/Microsoft\/TypeScript\/pull\/ 9407","author":"Hejlsberg A.","year":"2016","unstructured":"A. Hejlsberg . Number , enum, and boolean literal types - pull request 9407. https:\/\/github.com\/Microsoft\/TypeScript\/pull\/ 9407 , 2016 b. Accessed : 6-7-2016. A. Hejlsberg. Number, enum, and boolean literal types - pull request 9407. https:\/\/github.com\/Microsoft\/TypeScript\/pull\/ 9407, 2016b. Accessed: 6-7-2016."},{"key":"e_1_3_2_1_8_1","volume-title":"Quick start - typescript. https:\/\/www.typescriptlang. org\/docs\/","year":"2016","unstructured":"Microsoft. Quick start - typescript. https:\/\/www.typescriptlang. org\/docs\/ , 2016 a. Accessed : 28-9-2016. Microsoft. Quick start - typescript. https:\/\/www.typescriptlang. org\/docs\/, 2016a. Accessed: 28-9-2016."},{"key":"e_1_3_2_1_9_1","first-page":"12","volume":"2016","author":"Typescript","unstructured":"Microsoft. Typescript design goals. https:\/\/github.com\/Microsoft\/ TypeScript\/wiki\/ TypeScript-Design-Goals , 2016 b. Accessed: 12 - 17 -2016. Microsoft. Typescript design goals. https:\/\/github.com\/Microsoft\/ TypeScript\/wiki\/TypeScript-Design-Goals, 2016b. Accessed: 12-7-2016.","journal-title":"TypeScript-Design-Goals"},{"key":"e_1_3_2_1_10_1","volume-title":"Typescript language specification version 1.8. https:\/\/github.com\/Microsoft\/TypeScript\/blob\/ 29985f33b7cabf9f549721c368ba2118d147779f\/doc\/ TypeScriptLanguage\\%20Specification.pdf","year":"2016","unstructured":"Microsoft. Typescript language specification version 1.8. https:\/\/github.com\/Microsoft\/TypeScript\/blob\/ 29985f33b7cabf9f549721c368ba2118d147779f\/doc\/ TypeScriptLanguage\\%20Specification.pdf , 2016 c. Accessed : 4-7-2016. Microsoft. Typescript language specification version 1.8. https:\/\/github.com\/Microsoft\/TypeScript\/blob\/ 29985f33b7cabf9f549721c368ba2118d147779f\/doc\/ TypeScriptLanguage\\%20Specification.pdf, 2016c. Accessed: 4-7-2016."},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.5555\/555142"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2676726.2676971"},{"key":"e_1_3_2_1_13_1","first-page":"1","volume":"97","author":"ACM.","unstructured":"ACM. ISBN 97 8- 1 - 4503 -3300-9. ACM. ISBN 978-1-4503-3300-9.","journal-title":"ISBN"},{"key":"e_1_3_2_1_14_1","volume-title":"Announcing typescript 2.0 beta","author":"Rosenwasser D.","year":"2016","unstructured":"D. Rosenwasser . Announcing typescript 2.0 beta , 2016 . D. Rosenwasser. Announcing typescript 2.0 beta, 2016."},{"key":"e_1_3_2_1_15_1","volume-title":"https:\/\/ blogs.msdn.microsoft.com\/typescript\/2014\/10\/22\/ typescript-and-the-road-to-2-0\/, 10","author":"Turner J.","year":"2014","unstructured":"J. Turner . Typescript and the road to 2.0. https:\/\/ blogs.msdn.microsoft.com\/typescript\/2014\/10\/22\/ typescript-and-the-road-to-2-0\/, 10 2014 . J. Turner. Typescript and the road to 2.0. https:\/\/ blogs.msdn.microsoft.com\/typescript\/2014\/10\/22\/ typescript-and-the-road-to-2-0\/, 10 2014."},{"key":"e_1_3_2_1_16_1","unstructured":"Accessed: 6-7-2016.  Accessed: 6-7-2016."},{"key":"e_1_3_2_1_17_1","volume-title":"Angular 2: Built on typescript. https:\/\/ blogs.msdn.microsoft.com\/typescript\/2015\/03\/05\/ angular-2-built-on-typescript\/, 3","author":"Turner J.","year":"2015","unstructured":"J. Turner . Angular 2: Built on typescript. https:\/\/ blogs.msdn.microsoft.com\/typescript\/2015\/03\/05\/ angular-2-built-on-typescript\/, 3 2015 . J. Turner. Angular 2: Built on typescript. https:\/\/ blogs.msdn.microsoft.com\/typescript\/2015\/03\/05\/ angular-2-built-on-typescript\/, 3 2015."},{"key":"e_1_3_2_1_18_1","volume-title":"6-7-","author":"Accessed","year":"2016","unstructured":"Accessed : 6-7- 2016 . Accessed: 6-7- 2016."}],"event":{"name":"POPL '17: The 44th Annual ACM SIGPLAN Symposium on Principles of Programming Languages","location":"Paris France","acronym":"POPL '17","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages","SIGLOG ACM Special Interest Group on Logic and Computation","SIGACT ACM Special Interest Group on Algorithms and Computation Theory"]},"container-title":["Proceedings of the 2017 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3018882.3018887","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3018882.3018887","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:24:12Z","timestamp":1750220652000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3018882.3018887"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,1,2]]},"references-count":17,"alternative-id":["10.1145\/3018882.3018887","10.1145\/3018882"],"URL":"https:\/\/doi.org\/10.1145\/3018882.3018887","relation":{},"subject":[],"published":{"date-parts":[[2017,1,2]]},"assertion":[{"value":"2017-01-02","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}