Moja pravila za eslint su sljedeća
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 Čitaj više →U TypeScriptu imam:
try { } catch(err) { }blokovi i catch blokovi bez argumenta:
try { } catch { }U ESLint pravilima imam (uređeni izvadak iz 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}}}]S ovim pravilima, ESLint se žali na prvi tr
Čitaj više →Recimo da imamo ova tri izraza provjerena od strane eslint-a:
const exp1 = a ?? b; // ok const exp2 = a?.b // ok const exp3 = a?.b ?? c // Parsing error: ':' expected.Sve radi i uspješno se kompajlira s TypeScriptom, ali posljednji izraz baca eslint pogrešku Parsing error: ':' expected. Čini se da postoji problem s kombinacijom Nullish coalescing i optional chaining. Postoji li netko tko se susreo s ovim problemom?
package.json
Čitaj više →
Koristim WebStorm IDE za svoj TypeScript projekt s omogućenim ESLint i Prettier. Dobivam upozorenje:
za ovaj kod:
import { ToastAndroid } from 'react-native'; import { TProjectsList, IProject } from '../types'; export const reduceRecursively = (data: Čitaj više →Pokušavam koristiti Eslint kako bih nametnuo PascalCase na svojim React komponentama. Pogledao sam sve postojeće dodatke/pravila koje sam mogao pronaći, i evo mojih problema:
Koristim Typescript (.tsx ekstenzije), pa mi react/jsx-pascal-case neće raditi. Za datoteke koje nisu komponente, želim dopustiti kebab-case, pa bih htio filtrirati samo datoteke s .tsx ekstenzijom.
TL;DR - Volio bih imati Eslint pravilo koje primjenjuje PascalCase, ali samo na datotekama koj
Čitaj više →Skolon sam slučajno hardkodirati neke nizove poput imena aplikacije u porukama o pogreškama. Ime imam dostupno u const, ali zaboravim koristiti const i napišem ime aplikacije u JSX elementu ili TypeScript stringu. Projekt koristi ESLint za provjeru koda. Ima li ESLint neku pravilo ili dodatak za provjeru sadržaja JSX elemenata i TypeScript stringova za zabranjene riječi/rečenice?
Čitaj više →Pokušavam dodati lint-staged pravilo poput eslint --max-warnings=0, ali koristeći tslint. Dakle, pitanje je je li to moguće i ako jest, kako? Ništa korisno na njihovoj službenoj stranici dokumentacije.
Čitaj više →Kad sam pokušao napraviti prilagođeni hook, suočio sam se s nekim problemom. ESLint mi nije predložio pretplatnike za useEffect. (fetch nije bio predložen i popunio sam ga ručno) Također sam pokušao eslint-plugin-react-hooks, ali niti to ne radi.
useEffect(() => { fetch(); }, [fetch]);Isti problem za useCallback
puni kod prilagođenog hooka
import { useState, useEffect, useCallback } from "react"; import { server } from "./server"; in Čitaj više →TypeScript/ESLint/Prettier postali su moji omiljeni alati za sve vrste zadataka. Međutim, još uvijek se mučim sa malim Nodejs-skriptnama koje imaju samo nekoliko desetaka redaka koda. Za pisanje male Nodejs-skripte uz udobno iskustvo u IDE-u, trebam:
U mojim Angular9 i Angular10 projektima uspio sam stvoriti mixins koristeći dolje navedene korake iz bloga 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 Čitaj više →