close
Skip to content

swc transpiler does not set strictMode to match tsconfig #1531

@Janpot

Description

@Janpot

Search Terms

swc

Expected Behavior

Running

function defaultHello () {
  return ''
}

class X {
  constructor(x) {
    this.hello = () => (x.hello || defaultHello)()
  }
}

console.log(new X({
  hello () {
    return this.y || 'this works'
  }
}).hello())

using

  "ts-node": {
    "transpileOnly": true,
    "transpiler": "ts-node/transpilers/swc-experimental"
  },

will print

this works

(this is what is printed without using swc)

Actual Behavior

an error is printed:

/swctest/index.ts:13
    return this.y || 'this works'
                ^
TypeError: Cannot read property 'y' of undefined
    at hello (/swctest/index.ts:13:17)
    at X.hello (/swctest/index.ts:7:50)
    at Object.<anonymous> (/swctest/index.ts:15:4)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Module.m._compile (/swctest/node_modules/ts-node/src/index.ts:1371:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Object.require.extensions.<computed> [as .ts] (/swctest/node_modules/ts-node/src/index.ts:1374:12)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)

Specifications

ts-node v10.4.0
node v14.16.0
compiler v4.4.4
@swc/core 1.2.103 
  • tsconfig.json, if you're using one:
{
  "compilerOptions": {
    "target": "es5",                 
    "module": "commonjs",
    "esModuleInterop": true, 
    "forceConsistentCasingInFileNames": true, 
    "strict": false,  
    "skipLibCheck": true },

  "ts-node": {
    "transpileOnly": true,
    "transpiler": "ts-node/transpilers/swc-experimental"
  },
}
  • Operating system and version: MacOS 11.6

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions