Phaser3 + Typescript camera issues

What would be the correct type for a camera created with scene.cameras.add(x, y, w, h)? I have been attempting to use viewPort!: Phaser.Cameras.Scene2D.Camera;, but I get an error:

Error: Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit:
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/core/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/renderer/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/scene/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/utils/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/actions/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/animations/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/cache/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/cameras/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/create/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/curves/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/data/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/display/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/dom/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/events/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/gameobjects/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/geom/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/input/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/loader/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/math/index.js?commonjs-proxy"
(commonjs) load "\u0000/var/www/roc/html/node_modules/phaser/src/physics/index.js?commonjs-proxy"
    at EventEmitter.handleEmptyEventLoop (/var/www/roc/html/node_modules/rollup/dist/shared/rollup.js:23169:20)
    at Object.onceWrapper (node:events:641:28)
    at EventEmitter.emit (node:events:527:28)
    at process.<anonymous> (/var/www/roc/html/node_modules/rollup/dist/shared/rollup.js:23163:55)
    at process.emit (node:events:527:28)

I get what the error means, but I’m unsure as to the solution, or where it is stemming from, exactly. If I remove the “viewport”, everything works fine.

The type looks correct. The error is strange. You could try

tsc src --noEmit

Apparently, it is not the cameras causing it. Ive got another project that doesnt utilize camera functionality other than height and width that Ive just converted to typescript throwing the error, too. I must be screwing something up in typescript, as this project worked fine before porting to typescript. Ive created a repository, if you’dcare to take a look: https://github.com/jason-allen-oneal/ass-races