ember-cli-typescript no longer manages your Babel configuration, because ember-cli-babel does. This is an early step toward officially supporting TS across the Ember ecosystem. It also means that we now use Babel’s default configuration, which also comes with a small change to align better with the JavaScript spec around class fields.
For most cases, you won’t notice the difference, but if you were previously using TypeScript’s constructor property shorthand to define default values and using those values in a class field initializer, like this—
class Demo {
constructor(public name = '') {}
public nameLen = this.name.length;
}
—you will find that the initializer now fails. This is because the spec requires that class field initializers run before anything in the class constructor’s body except a super call, and TS’s custom syntax here is not part of the spec, and Babel therefore runs it after all other class field initializers.
This particular pattern was always a refactoring hazard: class field initializers should not refer to this because they can be broken by unrelated changes in surprising ways. This particular code will now not work at all, so you will need to migrate away from it. You can replace it with this code instead:
class Demo {
public nameLen: number;
constructor(public name = '') {
this.nameLen = this.name.length;
}
}
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps ember-cli-typescript from 3.1.4 to 4.0.0.
Release notes
Sourced from ember-cli-typescript's releases.
Changelog
Sourced from ember-cli-typescript's changelog.
Commits
0dd078b
chore: release v4.0.0e27904c
chore(deps): update dependency @types/node to v14.6.3d3ad529
chore(deps): update dependency got to v11.6.0bedd1bd
chore(deps): update dependency eslint to v7.8.16399ba1
chore(deps): update dependency ember-cli to v3.21.0d932f6d
chore(deps): update dependency ember-cli to v3.20.177a386b
chore(deps): update dependency eslint to v7.8.027ef88f
chore(deps): update dependency ember-source to v3.21.1ac57736
chore(deps): update dependency @types/node to v14.6.20db4ec1
chore(deps): update dependency mocha to v8.1.3Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)