// code snippet
interface TypeConfig { }
Nama antarmuka [tslint] harus dimulai dengan huruf I (nama antarmuka)
Microsoft menyarankan nama antarmuka untuk tidak diawali dengan I - https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines#names
Perhatikan bahwa ini adalah panduan untuk menulis compiler TypeScript itu sendiri. Ini tidak dimaksudkan untuk menjadi panduan gaya untuk proyek TypeScript lainnya di luar sana.
Jika Anda ingin mengadopsi panduan gaya ini untuk proyek Anda, Anda bisa mengubah konfigurasi aturan di tslint.json Anda menjadi "interface-name" : [true, "never"]
50 sen dari orang yang lewat:
"interface-name" : [true, "never-prefix"]
bukannya
"interface-name" : [true, "never"]
🙌
Saya mencoba mematikan awalan "I" dengan menambahkan nama antarmuka ke default tslint.json
yang dihasilkan oleh Create React App. Namun, sepertinya tidak berhasil. Mungkin saya meletakkannya di lokasi yang salah?
{
"extends": [
"tslint:recommended",
"tslint-react",
"tslint-config-prettier"
],
"linterOptions": {
"exclude": [
"config/**/*.js",
"node_modules/**/*.ts"
]
},
"interface-name" : [true, "never-prefix"]
}
Tidak apa-apa, saya menemukan jawabannya:
{
"extends": [
"tslint:recommended",
"tslint-react",
"tslint-config-prettier"
],
"linterOptions": {
"exclude": [
"config/**/*.js",
"node_modules/**/*.ts"
]
},
"rules": {
"interface-name" : [true, "never-prefix"]
}
}
Untuk beberapa alasan "interface-name": [true, "never"]
tidak bekerja untuk saya. Tapi "interface-name": false
berfungsi dengan baik
@vasilev-alex "interface-name": [true, "never-prefix"]
penekanan pada tidak pernah- awalan
Saya masih mendapatkan "interface name must start with a capitalized I"
ini tslint.json saya:
{
"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"
]
}
}
Apa yang saya lakukan salah?
@ offg777 Tidak ada yang jelas. Tautan ke repo?
Konfigurasi terlihat benar bagi saya - apakah Anda yakin tidak ada lagi yang mengesampingkannya? Aturannya pasti bekerja dengan baik untukku
@offg777
"nama antarmuka harus dimulai dengan huruf I"
Dari mana Anda mendapatkan kesalahan ini? Dari IDE Anda atau saat menjalankan CLI?
Dan saya tidak tahu tentang aturan cascading yang tepat dari tslint, tetapi apakah Anda mencoba meletakkan blok "aturan" di bawah "memperpanjang"?
Besar
Apakah eslint sudah mendukungnya?
Pengaturan
"rules": {
"interface-name": [
true,
"never-prefix"
]
},
menghasilkan
Configuration for rule "interface-name" is invalid
Mungkin aturan ini ada karena suatu alasan? Haruskah setiap antarmuka memiliki nama yang bermakna yang jelas berbeda dari kelas pelaksana?
Ini adalah ide yang sangat menyebalkan untuk memaksa seluruh dunia mengikuti preferensi Anda _di luar proyek Anda sendiri_. Obtrusi konvensi penamaan Anda sendiri dalam alat pemrograman adalah bug dari jaringan saraf pengembang produk;)
Untung TSLint sudah usang dan masalah ini tidak lagi relevan! #4534
Komentar yang paling membantu
Tidak apa-apa, saya menemukan jawabannya: