// @ts-expect-error
over // @ts-ignore
JS-0372186 }
187
188 public sub(filters: any[], onEvent: (event: Event, isAfterEose: boolean, relayUrl: string | undefined) => void, maxDelayms = 100) {
189 // @ts-ignore190 return this.relays.subscribe(filters, this.getCurrentRelaysInArray(), onEvent, maxDelayms, undefined)
191 }
192}
TypeScript allows you to suppress all errors on a line by placing a single-line comment starting with @ts-ignore
immediately before the erroring line. While powerful, there is no way to know if a @ts-ignore
is actually suppressing an error without manually investigating what happens when the @ts-ignore
is removed.
This means its easy for @ts-ignores
to be forgotten about, and remain in code even after the error they were suppressing is fixed. This is dangerous, as if a new error arises on that line it'll be suppressed by the forgotten about @ts-ignore
, and so be missed.
To address this, TS3.9 ships with a new single-line comment directive: // @ts-expect-error
.
This directive operates in the same manner as @ts-ignore
, but will error if the line it's meant to be suppressing doesn't actually contain an error, making it a lot safer.
// @ts-ignore
const str: string = 1;
const isOptionEnabled = (key: string): boolean => {
// @ts-ignore: if key isn't in globalOptions it'll be undefined which is false
return !!globalOptions[key];
};
// @ts-expect-error
const str: string = 1;
const isOptionEnabled = (key: string): boolean => {
// @ts-expect-error: if key isn't in globalOptions it'll be undefined which is false
return !!globalOptions[key];
};