Есть ли какой-нибудь стандартный способ в @ typescript-eslint привести возвращаемое значение к любому, не получая предупреждения «без явных-любых»? - PullRequest
2 голосов
/ 17 марта 2020
// I get @typescript-eslint of [Unexpected any. Specify a different type.eslint(@typescript-eslint/no-explicit-any)]

const funcToGetOnlineData: (url: string) => any = () => {
    // const httpData = (some processes to retrieve http request data)
    // return httpData;
};

funcToGetOnlineData('http://getsomedata.com');

Преобразование возвращаемого значения в any не очень хорошая практика, я знаю. Однако иногда нам это действительно нужно. то есть выборка данных с неизвестной формой через HTTP-запрос. Без отключения правила ESlint для этих строк, есть ли какой-нибудь стандартный способ / практика, чтобы избавиться от такой ситуации?

Ответы [ 3 ]

1 голос
/ 25 марта 2020

Насколько я знаю, вы не можете сделать это.

Однако any и unknown являются топ-типами в TypeScript, поэтому просто используйте unknown. Все значения, которые могут быть присвоены any, также могут быть присвоены unknown.

Таким образом, кажется, что вы можете выбрать один из следующих вариантов:

  1. Отключите правило linting для этого line, или;
  2. Используйте взамен unknown.

Попытка придумать хаки, чтобы обмануть линтера, думая, что any не используется, не является хорошей идеей .

0 голосов
/ 19 марта 2020

Почему бы просто не подавить предупреждение следующим образом:


  // tslint:disable-next-line: no-any
    const funcToGetOnlineData: (url: string) => any = () => {
    // const httpData = (some processes to retrieve http request data)
    // return httpData;
   };

0 голосов
/ 17 марта 2020

может как то так?

interface Article {
    items: []
}

function funcToGetOnlineDataV2<T>(url: string): Promise<T> {
    return fetch(url)
        .then((response: Response) => {
            return response.json();
        });
};

funcToGetOnlineDataV2<Article>('http://getsomedata.com').then((res: Article) => {
    console.log(res);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...