E0236: assignment-asserted field must have a type annotation
In TypeScript, !
after a field name indicates a definite assignment
assertion. Definite-assignment-asserted fields must have a type annotation. It
is a syntax error to write !
on a field without any type annotation:
class AccountBuilder {
name!;
address!;
setName(value: string) {
this.name = value;
return this;
}
setAddress(value: Address) {
this.address = value;
return this;
}
}
To fix this error, write a type annotation:
class AccountBuilder {
name!: string;
address!: Address;
setName(value: string) {
this.name = value;
return this;
}
setAddress(value: Address) {
this.address = value;
return this;
}
}
Alternatively, remove the !
:
class AccountBuilder {
name;
address;
setName(value: string) {
this.name = value;
return this;
}
setAddress(value: Address) {
this.address = value;
return this;
}
}
Introduced in quick-lint-js version 2.6.0.