Tslint: غير قادر على استيراد واستخدام moment.js

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

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

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

يتم فحص كود TypeScript

import * as moment from 'moment';
import { logger } from './utils/logger';

const x: moment.Moment = moment();

logger.info(x.toString());

بتهيئة tslint.json :

{
    "extends": ["tslint:all", "tslint-eslint-rules", "tslint-config-prettier"],
    "rules": {
        "completed-docs": [false],
        "member-ordering": [
            true,
            {
                "order": [
                    "public-static-field",
                    "protected-static-field",
                    "private-static-field",
                    "public-instance-field",
                    "private-instance-field",
                    "public-constructor",
                    "protected-constructor",
                    "private-constructor",
                    "public-static-method",
                    "protected-static-method",
                    "private-static-method",
                    "public-instance-method",
                    "private-instance-method"
                ]
            }
        ],
        "no-implicit-dependencies": false,
        "no-inferrable-types": false,
        "no-null-keyword": false,
        "prettier": [
            true,
            {
                "bracketSpacing": true,
                "jsxBracketSameLine": false,
                "parser": "typescript",
                "printWidth": 120,
                "semi": true,
                "singleQuote": true,
                "tabWidth": 4,
                "trailingComma": "all",
                "useTabs": false
            }
        ],
        "variable-name": [true, "allow-leading-underscore", "allow-pascal-case", "ban-keywords", "check-format"]
    },
    "rulesDirectory": ["tslint-plugin-prettier"]
}

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

تم الإبلاغ عن الأخطاء:

/Users/mrandolph/Projects/***/***/src/server/test.ts
ERROR: 4:26   no-unsafe-any  Unsafe use of expression of type 'any'.
ERROR: 6:13   no-unsafe-any  Unsafe use of expression of type 'any'.

سلوك متوقع

القدرة على استخدام moment.js. اعتبارًا من الآن ، يقوم tslint باكتشافه كنوع: any ، والذي يتسبب في حدوث أخطاء في الفحص. ومن المثير للاهتمام ، إذا حاولت استيراد طريقة معينة ، فما زلت أحصل على نفس الأخطاء "no-non-safe-any":

مثال:

import { duration, Duration } from 'moment';
import { logger } from './utils/logger';

const x: Duration = duration(1, 'week');

logger.info(x.toString());

ينتج المخرجات:

/Users/mrandolph/Projects/***/***/src/server/test.ts
ERROR: 4:21   no-unsafe-any  Unsafe use of expression of type 'any'.
ERROR: 6:13   no-unsafe-any  Unsafe use of expression of type 'any'.

مجرد تنبيه - ملف .d.ts مضمن مع لحظة - لا حاجة للتثبيت منtypes.

Duplicate

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

ولكن ماذا لو أردت استخدام متغير no-unused-variable أيضًا؟

هناك عدة خيارات:

  • لا تستخدم قاعدة lint ، استخدم خيارات المحول البرمجي --noUnusedLocals و --noUnusedParameters بدلاً من ذلك
  • قم بتشغيل tslint مرتين ، المرة الأولى بدون no-unused-variable ، الثانية فقط no-unused-variable
  • استخدم قاعدة كتبتها https://github.com/ajafff/tslint-consistent-codestyle/blob/master/docs/no-unused.md بدلاً من ذلك (لا تكتشف الأعضاء الخاصين غير المستخدمين)

لماذا يبدو أن هذا يؤثر فقط على اللحظة في مشروعي - لدي العديد من مكتبات الجهات الخارجية الأخرى التي تستورد بشكل جيد.

لا أحد يعرف حقًا ما الخطأ الذي يحدث ولماذا. القاعدة تعبث بطريقة ما مع الأجزاء الداخلية للنسخة المطبوعة.

ال 3 كومينتر

مجرد تنبيه - ملف .d.ts مضمن مع لحظة - لا حاجة للتثبيت منtypes.

شكرًا لك ، كان هذا سؤالي الأول.

tslint:all يمكّن no-unused-variable . من المعروف أن هذه القاعدة تتداخل مع القواعد الأخرى التي تم فحصها: # 2736
يمكنك محاولة تعطيل no-unused-variable ومعرفة ما إذا كانت الأخطاء ستختفي.

يمكنك محاولة تعطيل no-unused-variable ومعرفة ما إذا كانت الأخطاء ستختفي.

هذا مشغول. ولكن ماذا لو كنت أرغب في استخدام no-unused-variable أيضًا؟ لماذا يبدو أن هذا يؤثر فقط على اللحظة في مشروعي - لدي العديد من مكتبات الجهات الخارجية الأخرى التي تستورد بشكل جيد.

ولكن ماذا لو أردت استخدام متغير no-unused-variable أيضًا؟

هناك عدة خيارات:

  • لا تستخدم قاعدة lint ، استخدم خيارات المحول البرمجي --noUnusedLocals و --noUnusedParameters بدلاً من ذلك
  • قم بتشغيل tslint مرتين ، المرة الأولى بدون no-unused-variable ، الثانية فقط no-unused-variable
  • استخدم قاعدة كتبتها https://github.com/ajafff/tslint-consistent-codestyle/blob/master/docs/no-unused.md بدلاً من ذلك (لا تكتشف الأعضاء الخاصين غير المستخدمين)

لماذا يبدو أن هذا يؤثر فقط على اللحظة في مشروعي - لدي العديد من مكتبات الجهات الخارجية الأخرى التي تستورد بشكل جيد.

لا أحد يعرف حقًا ما الخطأ الذي يحدث ولماذا. القاعدة تعبث بطريقة ما مع الأجزاء الداخلية للنسخة المطبوعة.

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