{"id":1379,"date":"2021-04-02T19:41:13","date_gmt":"2021-04-03T02:41:13","guid":{"rendered":"https:\/\/coderpad-staging.io\/?post_type=programming-language&#038;p=1109"},"modified":"2023-04-17T03:55:52","modified_gmt":"2023-04-17T10:55:52","slug":"typescript","status":"publish","type":"programming-language","link":"https:\/\/coderpad.io\/languages\/typescript\/","title":{"rendered":"TypeScript"},"content":{"rendered":"\n<p>TypeScript in CoderPad runs on top of the JavaScript environment.<\/p>\n\n\n\n<p>Click <strong>Run <\/strong>to execute your code and see any type errors. We do not yet support inline diagnostics in the TypeScript editor. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>\u2757If you don\u2019t see a <strong>Run <\/strong>button, your interviewer may have&nbsp;<a href=\"https:\/\/app.coderpad.io\/faqs#why-wasn-t-i-able-to-run-code-during-an-interview\">disabled execution<\/a>.<\/p>\n<\/blockquote>\n\n\n\n<p>We also have an array of <code>npm <\/code>packages available for your use:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"http:\/\/underscorejs.org\/\" target=\"_blank\" rel=\"noopener\">underscore<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/lodash.com\/\" target=\"_blank\" rel=\"noopener\">lodash<\/a>&nbsp;for many useful functional helpers.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.npmjs.com\/package\/chai\" target=\"_blank\" rel=\"noopener\">chai<\/a>,&nbsp;<a href=\"https:\/\/www.npmjs.com\/package\/sinon\" target=\"_blank\" rel=\"noopener\">sinon<\/a>, and&nbsp;<a href=\"https:\/\/www.npmjs.com\/package\/sinon-chai\" target=\"_blank\" rel=\"noopener\">sinon-chai<\/a>&nbsp;testing libraries.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.npmjs.com\/package\/async\" target=\"_blank\" rel=\"noopener\">async<\/a>,&nbsp;<a href=\"https:\/\/www.npmjs.com\/package\/request\" target=\"_blank\" rel=\"noopener\">request<\/a>, and&nbsp;<a href=\"https:\/\/www.npmjs.com\/package\/isomorphic-fetch\" target=\"_blank\" rel=\"noopener\">isomorphic-fetch<\/a>&nbsp;for making async HTTP a little more convenient.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.npmjs.com\/package\/jsdom\" target=\"_blank\" rel=\"noopener\">jsdom<\/a>&nbsp;is a library for mimicking an HTML DOM within our JS environment. Useful if you want to test how candidates can manipulate elements without using our full HTML\/CSS\/JS environment.<\/li>\n<\/ul>\n\n\n\n<p>Note that packages must be&nbsp;<code>require()<\/code>ed, not&nbsp;<code>import<\/code>ed.<\/p>\n\n\n\n<p>Here\u2019s an example of a test using Chai:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"TypeScript\" data-shcb-language-slug=\"typescript\"><span><code class=\"hljs language-typescript shcb-wrap-lines\"><span class=\"hljs-keyword\">const<\/span> chai = <span class=\"hljs-built_in\">require<\/span>(<span class=\"hljs-string\">'chai'<\/span>)\n<span class=\"hljs-keyword\">const<\/span> sinon = <span class=\"hljs-built_in\">require<\/span>(<span class=\"hljs-string\">'sinon'<\/span>)\n<span class=\"hljs-keyword\">const<\/span> sinonChai = <span class=\"hljs-built_in\">require<\/span>(<span class=\"hljs-string\">'sinon-chai'<\/span>)\n\nchai.should()\nchai.use(sinonChai)\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">hello<\/span>(<span class=\"hljs-params\">name: <span class=\"hljs-built_in\">string<\/span>, cb<\/span>) <\/span>{\n  cb(<span class=\"hljs-string\">'hello '<\/span> + name)\n}\n\n<span class=\"hljs-keyword\">var<\/span> cb = sinon.spy()\nhello(<span class=\"hljs-string\">'world'<\/span>, cb)\ncb.should.have.been.calledWith(<span class=\"hljs-string\">'hello world'<\/span>)\ncb.should.have.been.calledWith(<span class=\"hljs-string\">'this test should fail'<\/span>)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">TypeScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">typescript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>","protected":false},"parent":0,"menu_order":0,"template":"","class_list":["post-1379","programming-language","type-programming-language","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/programming-language\/1379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/programming-language"}],"about":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/types\/programming-language"}],"wp:attachment":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/media?parent=1379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}