Skip to content

noThenProperty (since v1.5.0)

Diagnostic Category: lint/suspicious/noThenProperty

Sources:

Disallow then property.

When combining objects with a then method (thenable objects) with await expressions or dynamic imports, caution is necessary. These syntaxes interpret the object’s then method as intended for the resolution or rejection of a promise, which can lead to unexpected behavior or errors.

export {then};
suspicious/noThenProperty.js:1:9 lint/suspicious/noThenProperty ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Do not export then.
  
  > 1 │ export {then};
           ^^^^
    2 │ 
  
const foo = {
then() {}
};
suspicious/noThenProperty.js:2:5 lint/suspicious/noThenProperty ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Do not add then to an object.
  
    1 │ const foo = {
  > 2 │     then() {}
       ^^^^
    3 │ };
    4 │ 
  
const foo = {
get then() {}
};
suspicious/noThenProperty.js:2:9 lint/suspicious/noThenProperty ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Do not add then to an object.
  
    1 │ const foo = {
  > 2 │     get then() {}
           ^^^^
    3 │ };
    4 │ 
  
const foo = {
get then() {}
};
suspicious/noThenProperty.js:2:8 lint/suspicious/noThenProperty ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Do not add then to an object.
  
    1 │ const foo = {
  > 2 │    get then() {}
          ^^^^
    3 │ };
    4 │ 
  
foo.then = function () {}
suspicious/noThenProperty.js:1:1 lint/suspicious/noThenProperty ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Do not add then to an object.
  
  > 1 │ foo.then = function () {}
   ^^^^^^^^
    2 │ 
  
class Foo {
then() {}
}
suspicious/noThenProperty.js:2:5 lint/suspicious/noThenProperty ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Do not add then to a class.
  
    1 │ class Foo {
  > 2 │     then() {}
       ^^^^
    3 │ }
    4 │ 
  
class Foo {
static then() {}
}
suspicious/noThenProperty.js:2:12 lint/suspicious/noThenProperty ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Do not add then to a class.
  
    1 │ class Foo {
  > 2 │     static then() {}
              ^^^^
    3 │ }
    4 │ 
  
export {then as success};
const foo = {
success() {}
};
class Foo {
success() {}
}
const foo = bar.then;