TypeScript

Environment

Qualified supports the following TypeScript environments:

  • TypeScript 4.9 with Node 18 (Mocha, Jest)
  • TypeScript 4.2 with Node 14 (Mocha, Jest)
  • TypeScript 3.8 with Node 12 (Mocha, Jest)
  • TypeScript 3.3 with Node 10 (Mocha, Jest)
  • TypeScript 2.4 with headless Chrome (Karma+Mocha)
  • TypeScript 2.4 with Node 8 (Mocha)

TypeScript versions older than 4.2 are deprecated. Use TypeScript 4.2 or greater.

How different TypeScript code sections are treated

For TypeScript 2.4, the solution and optional setup/preloaded code are combined into one "solution" file. The test suite is its own file.

For TypeScript 3.3+, the optional setup/preloaded code is written to a separate file that can be imported with path: "./preloaded".

Timeout

The sandbox environment will timeout the code within 12 seconds. Qualified's Angular library challenges have an extended timeout of 16 seconds.

Packages

TypeScript 4.9

TypeScript 4.9 (Node 18) has multiple presets for different kinds of challenges.

Default (no preset)

  • @codewars/jest-reporter: 1.0.3
  • @codewars/mocha-reporter: 1.0.0
  • @types/chai: 4.3.4
  • @types/express: 4.17.21
  • @types/jest: 29.2.4
  • @types/lodash: 4.14.191
  • @types/mocha: 10.0.1
  • @types/node: 18.11.15
  • @types/supertest: 2.0.12
  • axios: 1.2.1
  • chai: 4.3.7
  • express: 4.18.2
  • express-joi-validation: ^5.0.1
  • chai-http: 4.3.0
  • fast-check: 3.4.0
  • jest: 29.3.1
  • joi: ^17.13.1
  • lodash: 4.17.21
  • mocha: 10.2.0
  • rxjs: 7.8.0
  • supertest: 6.3.3
  • ts-jest: 29.0.3
  • ts-node: 10.9.1
  • typescript: 4.9.4

React (react preset)

  • @codewars/jest-reporter: 1.0.3
  • @testing-library/dom: 8.19.0
  • @testing-library/jest-dom: 5.16.5
  • @testing-library/react: 13.4.0
  • @testing-library/user-event: 14.4.3
  • @types/escape-html: 1.0.2
  • @types/jest: 29.2.4
  • @types/lodash: 4.14.191
  • @types/prop-types: 15.7.5
  • @types/ramda: 0.28.20
  • @types/react: 18.0.26
  • @types/react-dom: 18.0.9
  • @types/react-redux: 7.1.24
  • @types/react-test-renderer: 18.0.0
  • @types/sinon: 10.0.13
  • @types/styled-components: 5.1.26
  • @types/styled-system: 5.1.15
  • @types/testing-library__jest-dom: 5.14.5
  • axios: 1.2.1
  • escape-html: 1.0.3
  • immer: 9.0.16
  • jest: 29.3.1
  • jest-environment-jsdom: 29.3.1
  • jest-snapshot: 29.3.1
  • lodash: 4.17.21
  • mobx: 6.7.0
  • mobx-react: 7.6.0
  • prop-types: 15.8.1
  • ramda: 0.28.0
  • react: 18.2.0
  • react-dom: 18.2.0
  • react-is: 18.2.0
  • react-redux: 8.0.5
  • react-test-renderer: 18.2.0
  • redux: 4.2.0
  • rxjs: 7.8.0
  • sinon: 15.0.1
  • styled-components: 5.3.6
  • styled-system: 5.1.5
  • ts-jest: 29.0.3
  • typescript: 4.9.4
  • use-immer: 0.8.1

Angular (angular preset)

Only available in Project Code Challenges.

  • @angular-builders/jest: ^16.0.1
  • @angular-devkit/build-angular: ^16.2.2
  • @angular/animations: ^16.2.12
  • @angular/cli: 16.2.2
  • @angular/common: ^16.2.12
  • @angular/compiler: ^16.2.12
  • @angular/compiler-cli: ^16.2.12
  • @angular/core: ^16.2.12
  • @angular/forms: ^16.2.12
  • @angular/platform-browser: ^16.2.12
  • @angular/platform-browser-dynamic: ^16.2.12
  • @angular/router: ^16.2.12
  • @codewars/jest-reporter: ^1.0.3
  • @ngrx/store: ^16.2.12
  • @types/jest: ^29.5.1
  • @types/node: ^18.15.11
  • jest: ^29.5.0
  • jest-preset-angular: ^13.1.0
  • rxjs: ^7.8.1
  • tslib: ^2.6.2
  • typescript: ^4.9.4
  • zone.js: ~0.13.0

TypeScript 4.2

TypeScript 4.2 (Node 14) has multiple presets for different kinds of challenges.

Default (no preset)

  • @types/chai: ^4.2.15
  • @types/jest: ^26.0.20
  • @types/lodash: ^4.14.168
  • @types/mocha: ^8.2.1
  • @types/node: ^14.14.31
  • @types/supertest: ^2.0.10
  • axios: ^0.21.1
  • chai: ^4.3.4
  • chai-http: ^4.3.0
  • fast-check: ^2.13.0
  • jest: ^26.6.3
  • lodash: ^4.17.21
  • mocha: ^8.3.0
  • rxjs: ^6.6.6
  • supertest: ^6.1.3
  • ts-jest: ^26.5.2
  • ts-node: ^9.1.1
  • typescript: ^4.2.2

React (react preset)

  • @testing-library/dom: ^7.29.6
  • @testing-library/jest-dom: ^5.11.9
  • @testing-library/react: ^11.2.5
  • @testing-library/react-hooks: ^5.0.3
  • @testing-library/user-event: ^12.7.3
  • @types/escape-html: ^1.0.0
  • @types/jest: ^26.0.20
  • @types/lodash: ^4.14.168
  • @types/prop-types: ^15.7.3
  • @types/ramda: ^0.27.38
  • @types/react: ^17.0.2
  • @types/react-dom: ^17.0.1
  • @types/react-redux: ^7.1.16
  • @types/react-test-renderer: ^17.0.1
  • @types/sinon: ^9.0.10
  • @types/styled-components: ^5.1.7
  • @types/styled-system: ^5.1.10
  • axios: ^0.21.1
  • escape-html: ^1.0.3
  • immer: ^8.0.1
  • jest: ^26.6.3
  • jest-environment-jsdom: ^26.6.2
  • jest-snapshot: ^26.6.2
  • lodash: ^4.17.21
  • mobx: ^6.1.7
  • mobx-react: ^7.1.0
  • prop-types: ^15.7.2
  • ramda: ^0.27.1
  • react: ^17.0.1
  • react-dom: ^17.0.1
  • react-is: ^17.0.1
  • react-redux: ^7.2.2
  • react-test-renderer: ^17.0.1
  • redux: ^4.0.5
  • rxjs: ^6.6.6
  • sinon: ^9.2.4
  • styled-components: ^5.2.1
  • styled-system: ^5.1.5
  • ts-jest: ^26.5.2
  • typescript: ^4.2.2
  • use-immer: ^0.4.2

Angular (angular preset)

Only available in Project Code Challenges.

  • @angular/animations: ^12.1.0
  • @angular/cli: ^12.1.2
  • @angular/common: ^12.1.0
  • @angular/compiler: ^12.1.0
  • @angular/compiler-cli: ^12.1.0
  • @angular/core: ^12.1.0
  • @angular/forms: ^12.1.0
  • @angular/platform-browser: ^12.1.0
  • @angular/platform-browser-dynamic: ^12.1.0
  • @angular/router: ^12.1.0
  • @angular-builders/jest: ^12.0.2
  • @angular-devkit/build-angular: ^12.1.2
  • @ngrx/store: 12.5.1
  • @types/jest: ^27.0.3
  • @types/node: ^12.11.1
  • jest: ^27.4.5
  • jest-preset-angular: ^11.0.1
  • rxjs: ^6.5.4
  • tslib: ^2.3.0
  • typescript: 4.2.2
  • zone.js: ^0.11.4

TypeScript 3.8

TypeScript 3.8 (Node 12) has multiple presets for different kinds of challenges.

Default (no preset)

  • axios: 0.19.2
  • chai: 4.2.0
  • fast-check: 1.23.0
  • jest: 25.2.3
  • lodash: 4.17.15
  • mocha: 7.1.1
  • rxjs: 6.5.5
  • ts-jest: 25.2.1
  • ts-node: 8.8.1
  • typescript: 3.8.3

React (react preset)

  • @testing-library/dom: 7.1.1
  • @testing-library/jest-dom: 5.3.0
  • @testing-library/react: 10.0.1
  • @testing-library/react-hooks: 3.2.1
  • @testing-library/user-event: 10.0.0
  • axios: 0.19.2
  • enzyme: 3.11.0
  • enzyme-adapter-react-16: 1.15.2
  • enzyme-to-json: 3.4.4
  • escape-html: 1.0.3
  • immer: 6.0.2
  • jest: 25.2.3
  • jest-environment-jsdom: 25.2.3
  • jest-snapshot: 25.2.3
  • lodash: 4.17.15
  • mobx: 5.15.4
  • mobx-react: 6.1.8
  • prop-types: 15.7.2
  • ramda: 0.27.0
  • react: 16.13.1
  • react-dom: 16.13.1
  • react-is: 16.13.1
  • react-redux: 7.2.0
  • react-test-renderer: 16.13.1
  • rebass: 4.0.7
  • redux: 4.0.5
  • rxjs: 6.5.5
  • sinon: 9.0.1
  • styled-components: 5.0.1
  • styled-system: 5.1.5
  • ts-jest: 25.2.1
  • typescript: 3.8.3
  • use-immer: 0.3.5

Angular (angular preset)

Only available in Project Code Challenges.

  • @angular-builders/jest: 9.0.0
  • @angular/animations: 8.1.3
  • @angular/common: 8.1.3
  • @angular/compiler: 8.1.3
  • @angular/core: 8.1.3
  • @angular/forms: 8.1.3
  • @angular/platform-browser: 8.1.3
  • @angular/platform-browser-dynamic: 8.1.3
  • @angular/router: 8.1.3
  • core-js: 3.6.4
  • jest: 25.2.3
  • jest-environment-jsdom-thirteen: 1.0.1
  • jest-preset-angular: 8.1.2
  • rxjs: 6.5.5
  • ts-jest: 25.2.1
  • ts-node: 8.8.1
  • tslib: 1.11.1
  • typescript: 3.8.3
  • zone.js: 0.9.1

TypeScript 3.3

TypeScript 3.3 (Node 10) has multiple presets for different kinds of challenges.

Default (no preset)

  • axios: 0.18.0
  • chai: 4.2.0
  • fast-check: 1.10.1
  • jest: 24.7.1
  • lodash: 4.17.11
  • mocha: 5.2.0
  • ts-jest: 24.0.2
  • ts-node: 8.0.2
  • typescript: 3.3.3

React (react preset)

  • @testing-library/dom: 5.2.1
  • @testing-library/react-hooks: 1.0.2
  • @testing-library/react: 8.0.1
  • @testing-library/user-event: 4.1.0
  • axios: 0.18.0
  • enzyme-adapter-react-16: 1.12.1
  • enzyme-to-json: 3.3.5
  • enzyme: 3.9.0
  • escape-html: 1.0.3
  • immer: 3.1.3
  • jest-dom: 3.5.0
  • jest-environment-jsdom: 24.7.1
  • jest-snapshot: 24.7.1
  • jest: 24.7.1
  • lodash: 4.17.11
  • mobx: 5.9.4
  • prop-types: 15.7.2
  • ramda: 0.26.1
  • react-dom: 16.8.6
  • react-mobx: 0.0.4
  • react-redux: 7.0.3
  • react-test-renderer: 16.8.6
  • react: 16.8.6
  • rebass: 3.1.2
  • redux: 4.0.1
  • sinon: 7.3.2
  • styled-components: 4.3.2
  • styled-system: 5.0.16
  • ts-jest: 24.0.2
  • typescript: 3.3.4000
  • use-immer: 0.3.3

Angular (angular preset)

Only available in Project Code Challenges.

  • @angular-builders/jest: 8.0.4
  • @angular/animations: 8.1.3
  • @angular/common: 8.1.3
  • @angular/compiler: 8.1.3
  • @angular/core: 8.1.3
  • @angular/forms: 8.1.3
  • @angular/platform-browser-dynamic: 8.1.3
  • @angular/platform-browser: 8.1.3
  • @angular/router: 8.1.3
  • core-js: 3.1.4
  • jest-environment-jsdom-thirteen: 1.0.1
  • jest-preset-angular: 7.1.1
  • jest: 24.8.0
  • rxjs: 6.4.0
  • ts-jest: 24.0.2
  • ts-node: 7.0.1
  • tslib: 1.10.0
  • typescript: 3.3.4000
  • zone.js: 0.9.1

TypeScript 2.4

TypeScript 2.4 supports two environments: Node 8 with Mocha and headless Chrome with Karma+Mocha.

Node 8

  • chai: 3.5.0
  • mocha: 3.5.3
  • typescript: 2.4.2

Headless Chrome

Mainly used for Angular 4 challenges.

  • @angular/common: 4.4.6
  • @angular/compiler: 4.4.6
  • @angular/core: 4.4.6
  • @angular/forms: 4.4.6
  • @angular/http: 4.4.6
  • @angular/platform-browser: 4.4.6
  • @angular/platform-browser-dynamic: 4.4.6
  • @angular/router: 4.4.6
  • chai: 3.5.0
  • core-js: 2.5.1
  • karma: 1.7.1
  • karma-chai: 0.1.0
  • karma-mocha: 1.3.0
  • karma-typescript: 3.0.8
  • karma-typescript-angular2-transform: 1.0.2
  • mocha: 3.5.3
  • puppeteer: 0.12.0
  • rxjs: 5.4.3
  • typescript: 2.4.2
  • zone.js: 0.8.18

Testing

Our TypeScript environment supports the following testing frameworks: