Pesquisa de site

typescript - Habilitar regra tslint/eslint TS2339 (Propriedade 'x' não existe no tipo 'y')


Enquanto todos os tópicos que consigo encontrar querem corrigir ou desativar o erro TS2339, estou tentando sincronizar as regras do eslint com as regras do typescript e gostaria de habilitá-lo.

Ao olhar para o projeto typescript-eslint, não consigo encontrar como habilitar a regra TS2339 ou encontrar o nome associado.

Você pode ver a configuração do que estou tentando fazer: Typescript PlayGround

type Person = {
    name: string;
}

const me: Person = {
    name: 'Kenny'
}

// this should error both in the IDE (which it does) and with eslint command line with the @typescript-eslint configuration (which it does NOT)
me.age = 3

Ao seguir a configuração e o ajuste encontrados aqui: Configuração de Regras

 module.exports = {
   root: true,
   parser: '@typescript-eslint/parser',
   parserOptions: {
     project: ['./tsconfig.json'],
   },
   plugins: ['@typescript-eslint'],
   extends: [
     'eslint:recommended',
     'plugin:@typescript-eslint/recommended',
     'plugin:@typescript-eslint/recommended-requiring-type-checking',
   ],
 };

Resposta #1

Eslint e Typescript são preocupações separadas aqui. Você receberá o erro TS2339 ao executar o compilador Typescript como tsc --noEmit

O Eslint se preocupa com outras categorias de erros e deixa a notificação de TypeScript que não compila para o próprio compilador.

No editor, você está vendo o resultado tanto do linter eslint quanto do suporte ao compilador TypeScript sobreposto ao seu código ao mesmo tempo, e você confundiu o erro do TS com algo que espera obter do eslint, o que você não obterá.

Artigos relacionados