// code snippet
interface TypeConfig { }
O nome da interface [tslint] deve começar com I maiúsculo (nome da interface)
A Microsoft sugere que os nomes de interface não sejam prefixados com I - https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines#names
Observe que essas são as diretrizes para escrever o próprio compilador de texto digitado. Ele não tem o objetivo de ser um guia de estilo para qualquer outro projeto datilografado por aí.
Se você deseja adotar este guia de estilo para seus projetos, basta alterar a configuração da regra em seu tslint.json para "interface-name" : [true, "never"]
50 centavos de um transeunte:
"interface-name" : [true, "never-prefix"]
vez de
"interface-name" : [true, "never"]
🙌
Tentei desligar o prefixo "I" adicionando nome-da-interface ao tslint.json
padrão gerado por Create React App. No entanto, não parece funcionar. Talvez eu esteja colocando no local errado?
{
"extends": [
"tslint:recommended",
"tslint-react",
"tslint-config-prettier"
],
"linterOptions": {
"exclude": [
"config/**/*.js",
"node_modules/**/*.ts"
]
},
"interface-name" : [true, "never-prefix"]
}
Esqueça, eu descobri:
{
"extends": [
"tslint:recommended",
"tslint-react",
"tslint-config-prettier"
],
"linterOptions": {
"exclude": [
"config/**/*.js",
"node_modules/**/*.ts"
]
},
"rules": {
"interface-name" : [true, "never-prefix"]
}
}
Por alguma razão, "interface-name": [true, "never"]
não funciona para mim. Mas "interface-name": false
funciona bem
@ vasilev-alex "interface-name": [true, "never-prefix"]
empasis no prefixo nunca
Ainda estou recebendo "interface name must start with a capitalized I"
este é meu tslint.json:
{
"rules": {
"interface-name": [
true,
"never-prefix"
]
},
"extends": [
"tslint:recommended",
"tslint-react",
"tslint-config-prettier"
],
"linterOptions": {
"exclude": [
"config/**/*.js",
"node_modules/**/*.ts",
"coverage/lcov-report/*.js"
]
}
}
O que estou fazendo de errado?
@ offg777 Nada óbvio. Link para o repo?
A configuração parece correta para mim - você tem certeza de que não há mais nada substituindo-a? A regra está definitivamente funcionando bem para mim
@ offg777
"o nome da interface deve começar com I maiúsculo"
De onde você tirou esse erro? Do seu IDE ou ao executar uma CLI?
E eu não sei sobre as regras exatas em cascata de tslint, mas você tentou colocar o bloco de "regras" abaixo de "estende"?
Excelente
O eslint já suporta isso?
Configuração
"rules": {
"interface-name": [
true,
"never-prefix"
]
},
resulta em
Configuration for rule "interface-name" is invalid
Talvez essa regra exista por um motivo? Cada interface deve ter um nome significativo obviamente diferente de uma classe de implementação?
Esta é uma ideia muito irritante de forçar o resto do mundo a seguir suas preferências _fora de seu próprio projeto_. A obstrução de suas próprias convenções de nomenclatura em ferramentas de programação é um bug da rede neural do desenvolvedor do produto;)
Ainda bem que o TSLint foi descontinuado e esse problema não é mais relevante, então! # 4534
Comentários muito úteis
Esqueça, eu descobri: