Tslint: تنص إرشادات ترميز TypeScript على عدم بدء الواجهة بـ I

تم إنشاؤها على ٣٠ سبتمبر ٢٠١٧  ·  15تعليقات  ·  مصدر: palantir/tslint

تقرير الشوائب

  • __ إصدار TSLint__: 3.15.1
  • __نسخة TypeScript__: 2.5.3
  • __ تشغيل TSLint عبر__: (اختر واحدًا) CLI

يتم فحص كود TypeScript

// code snippet
interface TypeConfig { }

السلوك الفعلي

يجب أن يبدأ اسم واجهة [tslint] بأحرف كبيرة I (اسم الواجهة)

تقترح Microsoft أسماء الواجهة حتى لا تكون مسبوقة بـ I - https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines#names

Question

التعليق الأكثر فائدة

لا تهتم ، لقد اكتشفت ذلك:

{
  "extends": [
    "tslint:recommended",
    "tslint-react",
    "tslint-config-prettier"
  ],
  "linterOptions": {
    "exclude": [
      "config/**/*.js",
      "node_modules/**/*.ts"
    ]
  },
  "rules": {
    "interface-name" : [true, "never-prefix"]
  }
}

ال 15 كومينتر

لاحظ أن هذه هي المبادئ التوجيهية لكتابة المترجم المطبوع عليه نفسه. ليس من المفترض أن يكون دليل أسلوب لأي مشروع مطبوع آخر موجود.
إذا كنت ترغب في اعتماد دليل النمط هذا لمشاريعك ، يمكنك فقط تغيير تكوين القاعدة في tslint.json إلى "interface-name" : [true, "never"]

50 سنتا من عابر سبيل:
"interface-name" : [true, "never-prefix"] بدلاً من
"interface-name" : [true, "never"]
🙌

مستندات القاعدة

حاولت إيقاف تشغيل البادئة "I" عن طريق إضافة اسم الواجهة إلى tslint.json الافتراضي الذي تم إنشاؤه بواسطة Create React App. ومع ذلك ، لا يبدو أنه يعمل. ربما أضعه في المكان الخطأ؟

{
  "extends": [
    "tslint:recommended",
    "tslint-react",
    "tslint-config-prettier"
  ],
  "linterOptions": {
    "exclude": [
      "config/**/*.js",
      "node_modules/**/*.ts"
    ]
  },
  "interface-name" : [true, "never-prefix"]
}

لا تهتم ، لقد اكتشفت ذلك:

{
  "extends": [
    "tslint:recommended",
    "tslint-react",
    "tslint-config-prettier"
  ],
  "linterOptions": {
    "exclude": [
      "config/**/*.js",
      "node_modules/**/*.ts"
    ]
  },
  "rules": {
    "interface-name" : [true, "never-prefix"]
  }
}

لسبب ما ، "interface-name": [true, "never"] لا يعمل معي. لكن "interface-name": false يعمل بشكل جيد

@ vasilev-alex "interface-name": [true, "never-prefix"] empasis على البادئة أبدًا

ما زلت أتلقى "interface name must start with a capitalized I"

هذا هو 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"
    ]
  }
}

ما الخطأ الذي افعله؟

@ offg777 لا شيء واضح. رابط الريبو؟

يبدو التكوين صحيحًا بالنسبة لي - هل أنت متأكد من أنه لا يوجد شيء آخر يتجاوزه؟ القاعدة تعمل بالتأكيد بشكل صحيح بالنسبة لي

ههههههههههه

"يجب أن يبدأ اسم الواجهة بحرف I كبير"

من أين لك هذا الخطأ؟ من IDE الخاص بك أو عند تشغيل CLI؟
وأنا لا أعرف بالضبط القواعد المتتالية لـ tslint ، لكن هل حاولت وضع كتلة "القواعد" أسفل "يمتد"؟

رائعة

هل تدعم eslint ذلك بالفعل؟

ضبط

"rules": {
    "interface-name": [
      true,
      "never-prefix"
    ]
  },

النتائج في
Configuration for rule "interface-name" is invalid

ربما هذه القاعدة موجودة لسبب؟ هل يجب أن يكون لكل واجهة اسم ذي معنى يختلف بوضوح عن فئة التنفيذ؟

هذه فكرة دموية مزعجة لإجبار بقية العالم على اتباع تفضيلاتك - خارج مشروعك الخاص -. يعد اقتحام اصطلاحات التسمية الخاصة بك في أدوات البرمجة خطأ في الشبكة العصبية لمطور المنتج ؛)

الشيء الجيد هو أنه تم إهمال TSLint ولم تعد هذه المشكلة ذات صلة ، إذن! # 4534

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات