node.js - תמיכת סקריפטים קלת משקל ב-TypeScript עם ESLint ו-Prettier

TypeScript/ESLint/Prettier הפכו לכלים האהובים עלי לכל סוגי המשימות. עם זאת, אני עדיין מתקשה עם סקריפטים קטנים ב-Nodejs שהם רק כמה עשרות שורות קוד. כדי לכתוב סקריפט קטן ב-Nodejs עם חוויית IDE נוחה, אני צריך:

  • צור קובץ package.json
  • הגדר tsconfig (קומפילציה מחמירה)
  • להגדיר את ESLint
  • הגדר Prettier
  • לקמפל ל-JavaScript אם אני אכפת לדעת על ביצועי הפעלה (ראה למטה)

זה די הרבה טקס עבור סקריפטים קטנים. יש לי סקריפטים שבהם קבצי התצורה הללו גדולים יותר מ

קרא עוד →

javascript - כיצד ליצור מיקסין ב-Angular11 עם ESLint

בפרויקטים שלי ב-Angular9 וב-Angular10 הצלחתי ליצור mixins באמצעות השלבים הבאים מתוך הבלוג Harnessing the power of Mixins in 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

קרא עוד →

טייפסקריפט, Airbnb ו-eslint import/no-extraneous-dependencies עם כינוי

אוקי, אני מנסה להגדיר TypeScript עם כללי lint של Airbnb. אבל אני לא מצליח לגרום ל-EsLint להבין שאני מייבא קובץ "פרויקט" מקומי.

אני ממשיך לראות את השגיאה הזאת:

אני בהחלט מקבל אינטיליסנס של Typescript ויכול ללחוץ Ctrl+Click על הקובץ. ניסיתי להתקין את חבילת

קרא עוד →

javascript - Eslint מכריח להשתמש בערכי החזרה

אני מחפש כלל ב-Typescript או ב-ESLint שאני יכול להשתמש בו כדי לכפות שימוש בערכי החזרה של פונקציות. לדוגמה

const getNum = () => 12

החוק צריך לאפשר לי לקרוא לו ולאחסן את הערך כמו

const a = getNum()

אבל אני לא אמור להיות מסוגל לעשות

getNum()

כרגע אנ

קרא עוד →

vue.js - Vue 3 @typescript-eslint/אין-גישה-לבחירה-לא-בטוחה

לאחרונה התחלנו לשדרג מ-Quasar v1 ל-Quasar v2 (מ-Vue 2 ל-Vue 3).

הקוד הזה עבד היטב קודם:

// src/pages/myComponent.vue <script lang="ts"> import { defineComponent } from 'vue' export default defineComponent({ props: { appId: { type: String, required: true, }, }, setup(props) { if (!props.appId) { console.error('No application ID provided to load the correct form') } }, }) </script>

אבל עם Vue 3

קרא עוד →

typescript - התכונה של WebStorm "eslint --fix on save" אינה עובדת. אבל בטרמינל ESLint עובד טוב

אני משתמש בפונקציונליות "eslint --fix on save". אתמול זה הפסיק לעבוד. אבל זה עדיין עובד טוב בטרמינל. בעיה זו מופיעה רק ב-WebStorm.

IDE מחזיר שגיאה:

Error: Failed to load plugin '@typescript-eslint' declared in '.eslintrc.json » ./node_modules/gts/#overrides[0]': No valid exports main found for '/Users/yurygrinko/WebstormProjects/lynx-project-app/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils' Referenced from: /Users/yurygrinko/WebstormProjects

קרא עוד →

ESLint Typescript לא מזהה הכרזות מודול

אני משתמש ב-https://www.npmjs.com/package/react-native-dotenv

כדי להשתמש בכך כראוי, יש לי את הכרזת המודול הזאת:

declare module '@env' { export const SOME_VAR: any; }

יובא כדלקמן:

import { SOME_VAR } from '@env';

ESLint ממשיך להוציא אחד מהדברים האלה כשאני מייבא אותו, למרות זאת:

לא הצלחתי להבין למה. הנה ה-.eslintrc.js

קרא עוד →

TypeScript - מהי הדרך הטובה ביותר להיפטר משגיאת no-inner-declarations של ESLint?

אני עובד על בסיס קוד של TypeScript שמשתמש במודולים בצורה כזו.

export module Foo { const foos = [] export function getFoos() { return getLastFoo(); } function getLastFoo() { return foos[-1] } }

צילום מסך של השגיאה:

קרא עוד →

javascript - ESLint דורש סוגריים מסולסלים אלא אם באמת מחזירים ערך

חיפשתי דרך להגדיר את eslint (או tslint) כך שידרוש סוגריים מסולסלות בפונקציות חץ למעט כשאנו משתמשים בהחזרה מרומזת. צפיתי בכלל arrow-body-style שמקרב אותנו יותר לסטנדרט הרצוי לנו מאשר יש לנו כרגע, אבל אני לא רואה דרך לאסור פונקציית חץ עם ביטוי אחד חוץ מתי שיש בפועל ערך מוחזר (אפילו אם ההחזרה הזו מצוינת כ- void).

/* valid */ const example = () => ({ foo: 'bar' }); const example2 = () => { return { foo: 'bar' } }; /* If t

קרא עוד →

TypeScript - איך להשתמש ב-ESLint כדי לאסור על ערכים בלתי רצויים להופיע בקוד

אנו מיישמים מודול בקרת גישה בפרויקט שלנו. כאשר משתמש נכנס למערכת, ההרשאות שלו ייטענו בהתאם לתפקידו. והתוכנה תקבע מה הוא יכול לעשות אך ורק על סמך רשימת ההרשאות במקום מי הוא או מהו תפקידו.

כדי להבטיח שהקודים יכבדו בקפידה את העיצוב, אני רוצה להוסיף כלל eslint כדי למנוע ערכים מסוימים להופיע בקבצי מקור מסוימים.

לדוגמה, הקוד הבא לא אמור להיות מותר

// should throw error because superadmin is in blackist if(user.isSuperAdmin) { // do something }

או

קרא עוד →