لدي قواعد eslint الخاصة بي كما يلي
module.exports = { env: { es6: true, node: true, mocha: true }, extends: [ "standard-with-typescript" ], parser: '@typescript-eslint/parser', globals: { Atomics: 'readonly', SharedArrayBuffer: 'readonly' }, parserOptions: { ecmaVersion: 2018, sourceType: 'module', project: "./tsconfig.json" }, rules: { "quotes": ["warn", "single"], "indent": ["warn", "tab", { "ignoreComments": true اقرأ أكثر →في تايبسكريبت لدي:
try { } catch(err) { }الكتل وكتل التقاط بدون وسيط:
try { } catch { }في قواعد ESLint لديّ (مقتطف معدّل من eslint.yaml):
space-before-function-paren: [error, {anonymous: never, named: never, asyncArrow: always}] space-before-blocks: warn keyword-spacing: [warn, {before: true, after: false, overrides: {catch: {after: true}}}]مع هذه القواعد، يشتكي ESLint من كتلة try/catch الأولى وليس من
اقرأ أكثر →لنفترض أن لدينا هذه التعابير الثلاثة مفحوصة بواسطة eslint:
const exp1 = a ?? b; // ok const exp2 = a?.b // ok const exp3 = a?.b ?? c // Parsing error: ':' expected.جميع الأعمال تعمل ويتم تجميعها بنجاح باستخدام تايب سكريبت، ولكن التعبير الأخير يطلق خطأ eslint Parsing error: ':' expected. يبدو أن هناك مشكلة في الجمع بين معامل الانصهار الصفري والسلسلة الاختيارية. هل هناك من واجه هذه المشكلة؟
package.json
"eslint": "5.16.0" اقرأ أكثر →
أنا أستخدم بيئة تطوير WebStorm لمشروعي بلغة TypeScript مع تمكين ESLint و Prettier. أتلقى تحذيراً:
لهذا الكود:
import { ToastAndroid } from 'react-native'; import { TProjectsList, IProject } from '../types'; export const reduceRecursively = (data: IPro اقرأ أكثر →أحاول استخدام Eslint لفرض PascalCase على مكونات React الخاصة بي. لقد راجعت جميع الإضافات/القواعد الموجودة التي استطعت العثور عليها، وهذه هي مشاكلي:
أنا أستخدم Typescript (امتدادات .tsx)، لذا لن تعمل react/jsx-pascal-case بالنسبة لي. بالنسبة للملفات التي ليست مكونات، أود السماح بـ kebab-case، لذا أرغب في تصفية الملفات التي لها الامتداد .tsx فقط.
ملخص - أود وجود قاعدة في Eslint تفرض استخدام PascalCase، ولكن فقط على الملفات التي تنتهي بـ .tsx. شكرًا!
اقرأ أكثر →أميل إلى ترميز بعض النصوص بشكل ثابت عن طريق الخطأ مثل اسم التطبيق داخل رسائل الخطأ. لدي الاسم متاح في ثابت لكني أنسى استخدام الثابت وأكتب اسم التطبيق في عنصر JSX أو نص TypeScript. يستخدم المشروع ESLint للتحقق من صحة الكود. هل لدى ESLint أي قاعدة أو إضافة لفحص محتوى عناصر JSX ونصوص TypeScript للكلمات/الجمل المحظورة؟
اقرأ أكثر →أحاول إضافة قاعدة lint-staged مثل eslint --max-warnings=0 ولكن باستخدام tslint. إذن، السؤال هو هل هذا ممكن وإذا كان كذلك كيف؟ لا يوجد شيء مفيد على موقعهم الوثائقي.
اقرأ أكثر →عندما حاولت إنشاء هوك مخصص واجهت بعض المشاكل. ESLint لم يقترح عليّ المشتركين لـ useEffect. (لم يتم اقتراح fetch فملأته يدوياً) كما جربت eslint-plugin-react-hooks، ولم يعمل أيضاً.
useEffect(() => { fetch(); }, [fetch]);نفس المشكلة بالنسبة لاستخدام useCallback
الكود الكامل للهوك المخصص
import { useState, useEffect, useCallback } from "react"; import { server } from "./server"; interface State<TData> { data: TData | null; } expo اقرأ أكثر →أصبحت TypeScript/ESLint/Prettier أدواتي المفضلة لجميع أنواع المهام. ومع ذلك، ما زلت أواجه صعوبة مع سكربتات Nodejs الصغيرة التي تتكون فقط من بعض العشرات من الأسطر. لكتابة سكربت Nodejs صغير مع تجربة IDE مريحة، أحتاج إلى:
هذا الكثير من الطقوس للسكربتات الصغيرة. لدي سكربتات حيث تكون ملفات ال
اقرأ أكثر →في مشاريعي Angular9 و Angular10 تمكنت من إنشاء mixins باستخدام الخطوات التالية من مدونة استخدام قوة Mixins في Angular
constructor.mixin.ts
export type Constructor<T = {}> = new (...args: any[]) => T;my-mixin.mixin.ts
import {Constructor} from './constructor.mixin'; import {BehaviorSubject} from 'rxjs'; export const myMixin = <T extends Constructor> اقرأ أكثر →