visual studio code - Como resolver regras de linting conflitantes no VSCode entre eslint e typescript-eslint

Tenho as minhas regras de eslinting da seguinte forma

module.exports = { env: { es6: true, node: true, mocha: true }, extends: [ "standard-with-typescript" ], parser: '@typescript-eslint/parser', globals: { Atomics: 'readonly', SharedArrayBuffer: 'readonly' }, parserOptions: { ecmaVersion: 2018, sourceType: 'module', project: "./tsconfig.json" }, rules: { "quotes": ["warn", "single"], "indent": ["warn", "tab", { "ig

Ler mais →

ESLint espaçamento para cláusula try/catch em Typescript

Em TypeScript tenho:

try { } catch(err) { }

blocos e blocos catch sem argumento:

try { } catch { }

Nas regras do ESLint eu tenho (excerto editado de eslint.yaml):

space-before-function-paren: [error, {anonymous: never, named: never, asyncArrow: always}] space-before-blocks: warn keyword-spacing: [warn, {before: true, after: false, overrides: {catch: {after: true}}}]

Com estas regras, o ESLint queixa-se d

Ler mais →

typescript - Problema de coalescência nula do Eslint combinado com encadeamento opcional

Digamos que temos estas três expressões verificadas pelo eslint:

const exp1 = a ?? b; // ok const exp2 = a?.b // ok const exp3 = a?.b ?? c // Parsing error: ':' expected.

Tudo funciona e é compilado com sucesso com TypeScript, mas a última expressão dá erro do eslint Parsing error: ':' expected. Parece que há um problema com a combinação de Nullish coalescing e optional chaining. Alguém já se deparou com este problema?

package.json

Ler mais →

typescript - Continuo a receber o erro do ESLint "definido mas nunca usado (no-unused-vars)" quando definido

Estou a usar o IDE WebStorm para o meu projeto TypeScript com ESLint e Prettier ativados. Estou a receber um aviso:

para este código:

import { ToastAndroid } from 'react-native'; import { TProjectsList, IProject } from '../types'; export const reduceR

Ler mais →

reactjs - Regra do Eslint para validar Pascal case no nome do componente React (apenas para extensão .tsx)

Estou a tentar usar o Eslint para aplicar PascalCase nos meus componentes React. Já examinei todos os plugins/regras existentes que consegui encontrar, e aqui estão os meus problemas:

Estou a usar Typescript (extensões .tsx), por isso react/jsx-pascal-case não vai funcionar para mim. Para ficheiros que não são componentes, quero permitir kebab-case, por isso gostaria de filtrar apenas ficheiros com a extensão .tsx.

TL;DR - Gostaria de uma regra do Eslint para impo

Ler mais →

typescript - Plugin Eslint para verificar corpos de texto

Tendo a codificar acidentalmente algumas strings diretamente, como o nome da aplicação, em mensagens de erro. Tenho o nome disponível numa constante, mas esqueço-me de usá-la e escrevo o nome da aplicação num elemento JSX ou numa string TypeScript. O projeto usa ESLint para validação de código. O ESLint tem alguma regra ou plugin para verificar o conteúdo de elementos JSX e strings TypeScript à procura de palavras/frases proibidas?

Ler mais →

typescript - Eslint --max-warnings para Tslint

Estou a tentar adicionar uma regra lint-staged como eslint --max-warnings=0, mas usando tslint. Então, a questão é se isso é possível e, em caso afirmativo, como? Nada de útil no site da documentação deles.

Ler mais →

reactjs - O ESLint não sugere os subscritores necessários do useEffect (CRA + TS + ESLint + Prettier)

Quando tentei criar um hook personalizado, deparei-me com alguns problemas. O ESLint não me sugeriu subscritores para o useEffect. (fetch não tinha sido sugerido e eu preenchi manualmente) Também tentei o eslint-plugin-react-hooks, mas também não funciona.

useEffect(() => { fetch(); }, [fetch]);

Mesmo problema para useCallback

código completo do hook personalizado

import { useState, useEffect, useCallback } from "react"; import { serv

Ler mais →

node.js - Suporte de scripting leve em TypeScript com ESLint e Prettier

TypeScript/ESLint/Prettier tornaram-se as minhas ferramentas favoritas para todos os tipos de tarefas. No entanto, ainda tenho dificuldades com pequenos scripts Nodejs que têm apenas algumas dezenas de linhas de código. Para escrever um pequeno script Nodejs com uma experiência confortável de IDE, preciso de:

  • Criar um package.json
  • Configurar tsconfig (compilação rigorosa)
  • Configurar ESLint
  • Configurar o Prettier
  • Compilar para JavaScript se me importar

    Ler mais →

javascript - Como Criar um Mixin no Angular11 com ESLint

Nos meus projetos Angular9 e Angular10, consegui criar mixins usando os passos abaixo do blog Harnessing the power of Mixins in Angular

constructor.mixin.ts

export type Constructor<T = {}> = new (...args: any[]) => T;

my-mixin.mixin.ts

import {Constructor} from './constructor.mixin'; import {BehaviorSubject} from 'rxjs'; export const myMixin = <T exte

Ler mais →