Typescript: @ts-ignore для области Π±Π»ΠΎΠΊΠ° ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 30 ΠΎΠΊΡ‚. 2017  Β·  88ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: microsoft/TypeScript

Π² настоящСС врСмя @ts-ignore ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ошибки ΠΈΠ· строки нСпосрСдствСнно ΠΏΠΎΠ΄ Π½Π΅ΠΉ

Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅

  1. вСсь ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ
  2. Ρ‚Π°ΠΊΠΆΠ΅ для всСго ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°

Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования:

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³: ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±Π΅Π· Π½Π΅Π³ΠΎ сломаСтся, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок Π² Ρ„Π°ΠΉΠ»Π΅, Π³Π΄Π΅ находится Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ

Awaiting More Feedback Suggestion VS Code Tracked

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

// @ts-ignore-start
// @ts-ignore-end

МоТно ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с: https://github.com/Microsoft/TypeScript/issues/19139

// @ts-ignore-start Property_0_does_not_exist_on_type_1
// @ts-ignore-end (possible include the error type again so you can turn be more specific of where you want to ignore some errors

@marianturchyn это Π½Π΅ tslint.

ВсС 88 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π½ΡƒΠΆΠ½ΠΎ это, Π»ΠΎΠ»

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ тСст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ. Π’ нашСй ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Β«Π±Π΅Π· ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²Β» ΠΏΠΎ β€‹β€‹ΡƒΠ²Π°ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, Π½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π΅Π³ΠΎ Π½Π° Π±Π»ΠΎΡ‡Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ строки шаблона ES6. .

ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠΎΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ связывания _ a.k.a partial import _ Π² mathjs

// tslint:disable:no-var-requires
import core from 'mathjs/core'

// @ts-ignore
import mathUnit from 'mathjs/lib/type/unit'
// @ts-ignore
import mathExpression from 'mathjs/lib/expression/function'
// @ts-ignore
import mathArithmatic from 'mathjs/lib/function/arithmetic'


const math = core.create()
// math.import(require('mathjs/lib/type/unit'))
// math.import(require('mathjs/lib/expression/function')) // compile, eval
// math.import(require('mathjs/lib/function/arithmetic')) // basic arithmetic like divide, exponent, etc

math.import(mathUnit)
math.import(mathExpression) // compile, eval
math.import(mathArithmatic) // basic arithmetic like divide, exponent, etc

export const unit = math.unit
export const createUnit = math.createUnit
export const compile = math.compile

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ошибки для всСго Ρ„Π°ΠΉΠ»Π°. Π― унаслСдовал Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ JS-ΠΊΠΎΠ΄ ES6, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Ρ‚Ρ€Π°Π½ΡΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ES5, Π½ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Babel. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ просто ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² .ts ΠΈ Ρ‚Ρ€Π°Π½ΡΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TS.

@ptallett , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .js , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ allowJs ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΈΡ… Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΡ‹ Π½Π΅ Π²Ρ‹Π΄Π°Π΅ΠΌ ошибки Π² Ρ„Π°ΠΉΠ»Π°Ρ… .js , Ссли Ρ„Π°ΠΉΠ» Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ коммСнтария // @ts-check Π²Π²Π΅Ρ€Ρ…Ρƒ ΠΈΠ»ΠΈ Π²Ρ‹ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ checkJs .

МнС всС Π΅Ρ‰Π΅ нравится эта Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, я сиТу Π² тСстовом Ρ„Π°ΠΉΠ»Π΅, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .ts, поэтому я ΠΌΠΎΠ³Ρƒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π»Π΅Π³ΠΊΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΡƒΠ΄Π° ΠΈΠ΄ΡƒΡ‚, ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ рядом с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ src ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΌΠΎΠ΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования .

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΠΎΠΈΡ… строк Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ красныС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ я Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎ ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏ, Ρ‡Π΅ΠΌ ΠΎΠ½Π° ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚, ΠΈ оТидаю Π²Ρ‹Π΄Π°Ρ‡ΠΈ ошибки, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ я ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽ Π΅Π΅ ΠΈ Π²ΠΎ врСмя выполнСния.

Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Ссли Π±Ρ‹ Π²Π΅Π·Π΄Π΅ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΊΡƒΡ‡ΠΈ красных Π»ΠΈΠ½ΠΈΠΉ. :)

Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ обновлСния Π½Π° Π½Π΅ΠΌ, ΠΈΠ»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ нашСл Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это?

ИспользованиС lodash ΠΈ особСнно lodash/fp с TypeScript ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ, ΠΈ Π΄Π°ΠΆΠ΅ с послСдними вСрсиями lodash ΠΈ @types/lodash Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π·Π°Π³Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

Если Π±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ @ts-ignore-block , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ошибки для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°, это Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ для Ρ‚Π°ΠΊΠΈΡ… случаСв использования, ΠΊΠΎΠ³Π΄Π° _Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚Π΅_ :-)

Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ с многочислСнными Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ @ts-ignore Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС становится ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ обновлСния ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ?

Π’Π°ΠΊΠΆΠ΅ ΠΈΡ‰Π΅Ρ‚ обновлСния ΠΏΠΎ этому запросу. Бпасибо!

Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ я дСлаю (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² сгСнСрированных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° шаблона Vue, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ Π±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ для Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°).
Наряду с этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, #19139 Π±Ρ‹Π» Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, особСнно ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ большим частям ΠΊΠΎΠ΄Π°, Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

с ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° отвСрстия это ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ vs code, для сохранСния Π² настройках Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области ΠΈΠ»ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ.

Π’ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ это. Π― автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽ Ρ†Π΅Π»Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ts с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ для ΠΌΠΎΠ΅ΠΉ схСмы GraphQL, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ graphql-code-generator , ΠΈ Π΅ΡΡ‚ΡŒ посторонний ΠΈΠΌΠΏΠΎΡ€Ρ‚, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ noUnusedLocals.

// @ts-ignore-start
// @ts-ignore-end

МоТно ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с: https://github.com/Microsoft/TypeScript/issues/19139

// @ts-ignore-start Property_0_does_not_exist_on_type_1
// @ts-ignore-end (possible include the error type again so you can turn be more specific of where you want to ignore some errors

@marianturchyn это Π½Π΅ tslint.

Иногда, ΠΊΠΎΠ³Π΄Π° я ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽ Π²Π΅Ρ‰ΠΈ ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, я Ρ…ΠΎΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь Ρ„Π°ΠΉΠ» (Ρ‚. Π΅. Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ), Π½Π΅ возясь с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ CLI.

Π‘Π°ΠΌΡ‹ΠΉ быстрый/самый простой - это Ρ„Π»Π°Π³ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ„Π°ΠΉΠ»Π°:

// @ts-ignore-file

@ lonix1 Π‘Π»ΡƒΡ‡Π°ΠΉ использования покрываСтся:

// @ts-ignore-start
// @ts-ignore-end

Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ // @ts-ignore-end . Π’Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ инструмСнты lint.

@mgol Π― Π½Π΅ Ρ…ΠΎΡ‡Ρƒ ΡΡ€Ρ‹Π²Π°Ρ‚ΡŒ эту Ρ‚Π΅ΠΌΡƒ ... Π½ΠΎ я ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» вашС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ - спасибо! - ΠΈ это Π½Π΅ сработало для мСня. Π― соСдинил строки Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ„Π°ΠΉΠ»Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΎΠ΄Π½Ρƒ Π²Π²Π΅Ρ€Ρ…Ρƒ, Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π½ΠΈΠ·Ρƒ.
ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Π΅ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ?

@lonix1 Π― ΠΈΠΌΠ΅Π» Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ @Blanen Ρ‚Π°ΠΊΠΆΠ΅ сработаСт для вас, Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ TypeScript для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ // @ts-ignore-start + // @ts-ignore-end ΠΈ // @ts-ignore-file , рСализуя // @ts-ignore-start + // @ts-ignore-end Π±ΡƒΠ΄Π΅Ρ‚ достаточно. Π­Ρ‚ΠΎ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, поэтому этот вопрос остаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ.

@DanielRosenwasser это Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ»Ρ‹ ts ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π²ΠΎ врСмя сборки. ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ настроСн Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² js рядом с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ts, ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Π’Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ js «скомпилированы», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² es5? ΠŸΡ€ΠΈ транспортировкС унаслСдованного ΠΊΠΎΠ΄Π° это Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.

НуТна эта функция.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ использования:

TypeORM ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создадим классы сущностСй Π‘Π”, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ столбцы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ. МногиС столбцы (ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния NULL… ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ опрСдСлСния класса, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ свойства бСзусловно ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ. Однако Typescript Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ опрСдСляли ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ столбСц ΠΊΠ°ΠΊ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ сущностСй, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ:

@Entity('investigation')
export class InvestigationEntity {
    @PrimaryGeneratedColumn('uuid')
    // @ts-ignore TS2564
    public investigationId: string;

    @Column({ type: 'uuid' })
    // @ts-ignore TS2564
    public userId: string;

    @Column({ type: 'jsonb' })
    // @ts-ignore TS2564
    public metadata: IEncryptedJSONContainer;
}

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ столбСц обязатСлСн ΠΈ (ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ TypeORM, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ свойство Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½Π΅ΠΌ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ эту ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ORM, для всСго класса (ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π°).

@haggholm Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅ΡΡ‚ΡŒ ts-ignore public metadata!: IEncryptedJSONContainer ?

@RyanCavanaugh НСвСТСство! Π― пропустил эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Извиняюсь; поТалуйста, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅.

я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ

// @ts-ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ-старт
--strick Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит ΡŽΠ½ΠΈΡ‚-тСстированиС ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с ΠΌΠ°ΡˆΠΈΠ½ΠΎΠΏΠΈΡΠ½Ρ‹ΠΌ тСкстом. Π£ мСня Π΅ΡΡ‚ΡŒ 6 строк, посвящСнных ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°. УТасный. ЗаставляСт ΠΌΠΎΠΈ Π³Π»Π°Π·Π° ΠΊΡ€ΠΎΠ²ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒ. Π›ΡŽΠ±Ρ‹Π΅ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ для игнорирования Π±Π»ΠΎΠΊΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ высоко ΠΎΡ†Π΅Π½Π΅Π½Ρ‹.

it('TestNode_ReconnectionsWorkload', async function () {
    for (let i = 0; i < 1; i++) {
        nodes.push(await Node.NewNode(serverUrl, {
            handlers: {
                active: async function (n: Node) {
                    try {
                        // @ts-ignore
                        if (n.view.Empty()) {
                            // @ts-ignore
                            if (n.conns.Empty() && !n.server) {
                                // @ts-ignore
                                await n.login(n.address);
                            }
                            return;
                        }

                        const data = new flats.Message({
                            // @ts-ignore
                            id: n.id,
                            type: flats.MessageType.Data,
                            data: 'hello world',
                        });

                        const dataBytes = data.toBytes();
                        const dataBase64 = base64.encode(dataBytes);
                        // @ts-ignore
                        const dataSigBytes = await n.sign(dataBytes);
                        const dataSigBase64 = base64.encode(dataSigBytes);

                        // @ts-ignore
                        for (const conn of n.conns.Iter()) {
                            conn.Send(`${dataBase64}.${dataSigBase64}`);
                        }
                    } catch (error) {
                        console.log(error);
                    }
                },
            },
        }));
    }

    for (const node of nodes) {
        await node.Wait();
    }
});

Ну, я собирался Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΅Π΅.

@ts-ignore ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ многострочный ΠΈ однострочный ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ!

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ npm, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ написаны Π±Π΅Π· NoImplicitAny,
Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкС «нСявно любая», послС Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ:

import { a, b } from 'MyNonTypedModule' // <-- Implicit any error

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ @ts-ignore:

//@ts-ignore
import { a, b } from 'MyNonTypedModule'

Но ΠΊΠΎΠ³Π΄Π° я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с автоматичСским ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Prettier, это происходит:
(ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Prettier)

//@ts-ignore
import { 
  a, 
  b 
} from 'MyNonTypedModule' // <-- Still (again) getting the Implicit any error

Π― ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

import { 
 a, 
 b
//@ts-ignore
 } from 'MyNonTypedModule'

ΠΈΠ»ΠΈ

//@ts-ignore-start
import { 
   a, 
   b
} from 'MyNonTypedModule'
//@ts-ignore-end

Но Π·Π°Ρ‚Π΅ΠΌ это Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ ΠΏΡ€ΠΈ однострочном ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅:

//@ts-ignore-start
import { a } from 'MyNonTypedModule'
//@ts-ignore-end
import { b } from 'SomeTypedModule'
//@ts-ignore-start
import { c } from 'SomeOtherNonTypedModule'
//@ts-ignore-end

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ это Ρ‚Π°ΠΊ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ автоматичСский ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ однострочным ΠΈ многострочным ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, сколько элСмСнтов импортируСтся ΠΈΠ· модуля.
Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ Ρ†Π΅Π»ΠΈ автоматичСского ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, Ссли я измСню ΠΊΠΎΠ΄ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ts-ignore-start ΠΈ ts-ignore-end ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅,
Π˜Ρ‚Π°ΠΊ: //@ts-ignore для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° (Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки), Π½Π° ΠΌΠΎΠΉ взгляд, это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ts-ignore. (Или ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ³Π½ΠΎΡ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: @ts-ignore-block / @ts-ignore-import)

ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ошибки Π²ΠΎ всСм Ρ„Π°ΠΉΠ»Π΅:

// @ts-ignore-all TS1206

/*
... rest of the file
*/

Π’ согласии с людьми Π²Ρ‹ΡˆΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ // @ts-ignore-start ΠΈ // @ts-ignore-end для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования, упомянутых Π² этой Ρ‚Π΅ΠΌΠ΅.

Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ // @ts-ignore ΠΈ позволяСт Π²Π°ΠΌ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ошибки Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ // @ts-ignore-start Π²Π²Π΅Ρ€Ρ…Ρƒ.

Π•ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования для ряда Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π― ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ:

@ts-ignore ΠΊΠ°ΠΊ настоящСС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
@ts-ignore TSxxx [TSxxx ...] ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ошибки
@ts-ignore-start Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ для игнорирования
@ts-ignore-start TSxxx [TSxxx ...] ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ошибки для Π±Π»ΠΎΠΊΠ°
@ts-ignore-end ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ
@ts-ignore-all ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ ошибки для ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части Ρ„Π°ΠΉΠ»Π°
@ts-ignore-all TSxxx [TSxxx ...] ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ошибки для ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части Ρ„Π°ΠΉΠ»Π°

Β«ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ошибки» ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ Π² tsconfig, ΠΈΠ»ΠΈ опрСдСляСмыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π³Ρ€ΡƒΠΏΠΏΡ‹ ошибок TSxxx.

Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠΎΠ² игнорирования, Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π² ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ; я Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅Π» явныС Π±Π»ΠΎΠΊΠΈ ts-ignore Π² ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Но ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ для этого, поэтому я здСсь Π½Π° Π·Π°Π±ΠΎΡ€Π΅.

Π½ΡƒΠΆΠ΅Π½ Ρ„Π°ΠΉΠ» .tsignore

Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ .npmignore ΠΈ .gitignore

image

Π”ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π±Π»ΠΎΠΊ игнорирования. Π― застрял Π² Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ puppeteer. Π’ puppeteer Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ скрипта Π½Π° страницС. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ скрипта ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылку Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, доступныС Π½Π° страницС, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ссылка Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ доступна Π²ΠΎ врСмя выполнСния.

// @ts-ignore-start
// @ts-ignore-end

Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ сдСлаСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° TypeScript ΠΌΠ΅Π½Π΅Π΅ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Ρ‹ΠΌ для людСй.

О

// @ts-ignore-start
// @ts-ignore-end

Π― сдСлал это ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π½Π΅Π΅ ΠΈ Ρ…ΠΎΡ‡Ρƒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ синтаксис.
Π›ΠΈΠ±ΠΎ сдСлай старт-стоп, Π»ΠΈΠ±ΠΎ Π½Π°Ρ‡Π½ΠΈ-ΠΊΠΎΠ½Π΅Ρ†
start ΠΈ end (ΠΊΠ°ΠΊ Π³Π»Π°Π³ΠΎΠ»Ρ‹) Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Π½Ρ‚ΠΎΠ½ΠΈΠΌΠ°ΠΌΠΈ, ΠΈ это Π±ΡƒΠ΄Π΅Ρ‚ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒ мСня навсСгда, Ссли ΠΎΠ½ΠΎ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π² ΠΌΠ°ΡˆΠΈΠ½ΠΎΠΏΠΈΡΠ½Ρ‹ΠΉ тСкст.

это ΠΊΡ€ΡƒΡ‚ΠΎ со ΠΌΠ½ΠΎΠΉ

// @ts-ignore-begin
// @ts-ignore-end

ΠšΡ€Π°ΠΉΠ½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ? :-(

МнС Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ΅Π½ ΠΈΠ³Π½ΠΎΡ€ Π±Π»ΠΎΠΊΠ°

+1

+1

ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ обновлСния ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ?

πŸ™πŸ»

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅: ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ TS (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ swagger), Π³Π΄Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° эта функция.

+1

Π‘Π΅Π· //@ts-ignore-file Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° TS

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ это "Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚" Π½Π΅ΠΏΡ€Π°Π²Π΄Π°

@RyanCavanaugh БообщСство явно нуТдаСтся Π² этом, Π΅ΡΡ‚ΡŒ Π»ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ это Π½Π΅ Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ? Бпасибо!

Π― Π±ΠΎΡ€ΡŽΡΡŒ с этим прямо сСйчас, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ я Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ это Π²ΠΎΠΎΠ±Ρ‰Π΅ Π±Π΅Π· ΠΏΠ»Π°Ρ‡Π° Typescript ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ΅Π³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°.

Π’ настоящСС врСмя ΠΌΡ‹ нуТдаСмся Π² этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠœΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, которая ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏΡ‹ Node для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π½Π΅ интСрСсны. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ // @ts-ignore для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° вмСсто использования skipLibCheck для игнорирования всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΠ½Π΅ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ идСя // @ts-ignore-file, Π½ΠΎ // @ts-ignore, вСроятно, сработал Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ для согласованности.

Π˜Ρ‚Π°ΠΊ... Π― ΠΎΡ‚ΠΊΡ€Ρ‹Π» #33383 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ //@ts-nocheck Π² ΠΌΠ°ΡˆΠΈΠ½ΠΎΠΏΠΈΡΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ являСмся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ компилятора _TypeScript_, ΠΌΡ‹ сами этого Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ (Π½Π΅ исправляя вСроятныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠΎΠΎΠΎΠΎ!!?!?) - Π΄Π°ΠΆΠ΅ //@ts-ignore Π² машинописном тСкстС стали Π²Π΅Ρ‰ΡŒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π²Ρ‹ΠΊΡ€ΡƒΡ‚ΠΈΠ»ΠΈ Ρ€ΡƒΠΊΡƒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹.... колСблСмся... Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ подавлСния. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ чувствуСтС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ΅Π½ Ρ‚Π°ΠΊΠΎΠΉ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ подавлСния, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ, Ссли Π±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠΉΡ‚ΠΈ Ρ‚ΡƒΠ΄Π° ΠΈ πŸ‘

@weswigham , хотя это, вСроятно, Π½Π΅ самая ваТная функция. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк ΠΊΠΎΠ΄Π°, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС. Однако я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эта ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π½Π΅ нашла способ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ошибки Π²ΠΎ врСмя выполнСния. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ сборкС.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π° ΠΊΠ°ΠΊ "ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ²", Π²ΠΎΡ‚ Π΅Ρ‰Π΅:

ΠŸΡ€ΠΈ быстром ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ я Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ TypeScript, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ новая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Однако я Ρ…ΠΎΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ошибки Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов , просто Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΏΠΎΠΊΠ° я ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽ.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ @ts-ignore- Π²Π²Π΅Ρ€Ρ…Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π±Ρ‹Π»ΠΎ Π±Ρ‹ достаточно просто.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ @kumar303 : ΠΏΡ€ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΌ тСстировании ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°/Ρ„Π°ΠΉΠ»Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти случаи Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ утвСрТдСния.

@weswigham Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ это Π·Π° Ρ„Π»Π°Π³ΠΎΠΌ компилятора.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π·Π° Ρ„Π»Π°Π³ΠΎΠΌ компилятора.

НС Π½Π°Π΄ΠΎ - это Π² Π±Π΅Ρ‚Π΅ 3.7.

re: https://github.com/microsoft/TypeScript/pull/33383 : @weswigham , это Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, спасибо! ΠœΠΎΡ‰Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ использования здСсь являСтся Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ„Π°ΠΉΠ»Π΅, поэтому я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ lint, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π·Π°Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ @ts-nocheck

Π’ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с gatsby, Π³Π΄Π΅ статичСский запрос graphQL Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ„Π°ΠΉΠ»Π°Ρ… .jsx , Π½ΠΎ Π½Π΅ Π² Ρ„Π°ΠΉΠ»Π°Ρ… .tsx . Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ. (вопрос здСсь https://github.com/AdamLeBlanc/gatsby-plugin-ts-loader/issues/5)

ΠŸΡ€ΠΈΠ²Π΅Ρ‚!
Π‘Ρ‹Π»ΠΎ Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅?

// @ts-ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ-старт
// @ts-ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ-ΠΊΠΎΠ½Π΅Ρ†

Π”ΡƒΠΌΠ°ΡŽ, это Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ. Π― Π±Ρ‹Π» Π±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ этим.

ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ //@ts-nocheck для подавлСния всСх ошибок Π²ΠΎ всСм Ρ„Π°ΠΉΠ»Π΅ Π² вСрсии 3.7. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ строк ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ _Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ_ потрСбностСй Π±Π΅Π· особой суСты. Если Ρƒ вас Π΅ΡΡ‚ΡŒ достаточно большой Π±Π»ΠΎΠΊ Π² провСряСмом Ρ„Π°ΠΉΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, просто ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ всСго Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ, Ссли это нСприятно, ΠΈΠ·Π²Π»Π΅ΠΊΠΈΡ‚Π΅ Π½Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ этого Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку с Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ? ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ts-ignore ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ts-nocheck Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» β€” ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π½Π° самом Π΄Π΅Π»Π΅ Π½ΠΈΠΊΠΎΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ сопоставляСтся с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ, поэтому каТСтся ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ…ΡƒΠΆΠ΅ (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сопоставлСно с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΈΠ»ΠΈ основной ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ подавляСтС). По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π±Π΅Π· подавлСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² ошибок ΠΌΠ½Π΅ Π½Π΅ особСнно ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

Π―, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅Π» Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ( //@ts-nocheck File is a legacy untyped UMD module concatenated into the build - declarations are pulled from node_modules, so errors here are hopefully meaningless ) Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ подавлСния ( //@ts-ignore The TS compiler doesn't support the assignment on the next line because we never declare it, but we provide this for legacy compat ) для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡ…ΠΎΠΉ Π²Π΅Ρ‰ΠΈ (tm). Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ, Ρ…ΠΎΡ‚ΡŒ ΡƒΠ±Π΅ΠΉ, ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΄Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ _Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹_ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Π½Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° стратСгии ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ), ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ "написаниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚ подавлСния Ρƒ мСня Π³Π»Π°Π·Π° ΠΊΡ€ΠΎΠ²ΠΎΡ‚ΠΎΡ‡Π°Ρ‚Β», ΠΊ Ρ‡Π΅ΠΌΡƒ Ρƒ мСня _Π½ΡƒΠ»Π΅Π²ΠΎΠ΅_ сочувствиС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, ΠΏΠΎ сути, ΠΌΡ‹ считаСм, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ подавлСния Π² TypeScript. Если это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ‚ΠΈΠΏΠ°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Π΅ (Π²ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ any , ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ сокращСнныС объявлСния ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ). Если это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° синтаксиса, всС уТасно, ΠΈ ΠΌΡ‹ всС Ρ€Π°Π²Π½ΠΎ сломаСмся, поэтому подавлСния Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ (ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ влияСт Π½Π° ошибки синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°).

Бпасибо Π·Π° //@ts-nocheck , Π½ΠΎ это Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°:

const $element = document.createElement('iframe')
$element.loading = 'lazy' // Property 'loading' does not exist on type 'HTMLIFrameElement'.

// @ts-nocheck

Π£ мСня Π΅ΡΡ‚ΡŒ интСрСсный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования.

ΠœΡ‹ создали ΠΈΠ»ΠΈ создали ORM Π½Π° Typescript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ acorn для компиляции ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² наш DDL.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос where, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ области видимости:

.entities
.include('parent')
.where(m => m.id === this.id, { id: this.entityId })
.toList()

Π­Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ просто ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ: Property 'id' does not exist on type 'xxx'

Если я ΠΎΠ±Π΅Ρ€Π½Ρƒ Π΅Π³ΠΎ Π² @ts-ignore-start , ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

// @ts-ignore-start
.where(m => m.id === this.id, { id: this.entityId })
// @ts-ignore-end

Но ΠΊΠΎΠ³Π΄Π° форматируСтся ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Ρ‹Π²Ρ‹ строк:

// @ts-ignore-start
.where(m => m.id === this.id || m.id === this.id2, {
  id: this.entityId,
  id2: this.entity2Id
})
// @ts-ignore-end

Π­Ρ‚ΠΎ большС Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π­Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ просто ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ:

Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π° ошибка Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ‚ΠΈΠΏΠ°, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ просто ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ as any (ΠΈΠ»ΠΈ, Π² jsdoc, /** <strong i="8">@type</strong> {any} */(expr) ) для доступа (ΠΎΠ²), Ссли Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΅Π΅ ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ.

//@ts-nocheck Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ts angular, Π½ΠΎ //@ts-ignore Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° для Microsoft Π½Π°Ρ‡Π°Π»Π°ΡΡŒ Π² 2017 Π³ΠΎΠ΄Ρƒ. 2017! Π’ΠΎΡ‚ это Π΄Π°...

Π£ΠΆΠ΅ 3 Π³ΠΎΠ΄Π°, Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅Ρ‚. ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ JavaScript Π½Π΅ хотят ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° ΠΌΠ°ΡˆΠΈΠ½ΠΎΠΏΠΈΡΠ½Ρ‹ΠΉ тСкст.

// @ts-ignore-start
// @ts-ignore-end

МоТно ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с: #19139

// @ts-ignore-start Property_0_does_not_exist_on_type_1
// @ts-ignore-end (possible include the error type again so you can turn be more specific of where you want to ignore some errors

@marianturchyn это Π½Π΅ tslint.

Π•ΡΡ‚ΡŒ ΠΏΠ»Π°Π½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ это?

// @ts-nocheck
ΠΏΠΎΠΊΠ° СдинствСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ :(

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ для рассмотрСния здСсь...

Π― ΠΊΠΎΠ΄, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΡƒΡ‡Ρƒ ΠΊΠΎΠ΄Π° TypeScript ΠΈΠ· собствСнного языка Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основныС ΠΏΠΎΡ‚ΠΎΠΊΠΈ управлСния ΠΈ условия. Π₯отя я ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°, я Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΊΠΎΠ΄Π° (это зависит ΠΎΡ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ).

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сгСнСрированный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ нСдостиТимый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ, Π² ΠΎΠ΄Π½ΠΎΠΌ случаС, TS2367, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° соотвСтствиС константС пСрСчислСния, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ этого Π±Π»ΠΎΠΊΠ° содСрТится Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° соотвСтствиС Π΄Ρ€ΡƒΠ³ΠΎΠΉ константС пСрСчислСния. НапримСр:

if (foo === MyEnum.ONE) {
  const bar = (foo === MyEnum.TWO ? "two" : "one");
}

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ написанного ΠΎΡ‚ Ρ€ΡƒΠΊΠΈ ΠΊΠΎΠ΄Π° этот шаблон Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ. Однако с Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ (Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ!) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π΅Π· нСобходимости ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния.

Π― Π½Π΅ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ Ρƒ мСня Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° для использования сгСнСрированного ΠΊΠΎΠ΄Π° ΠΈΠ·-Π·Π° этой ошибки. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ я Π±Ρ‹ ΠΏΠΎΠ΄Π°Π²ΠΈΠ» эту ΠΎΡˆΠΈΠ±ΠΊΡƒ для всСх Ρ„Π°ΠΉΠ»ΠΎΠ², сгСнСрированных ΠΊΠΎΠ΄ΠΎΠΌ, Π½ΠΎ сохранил Π±Ρ‹ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ².

Как Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ, Ρƒ мСня Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ всСх Ρ‚ΠΈΠΏΠΎΠ². Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ я Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ большой ΠΏΠΎΠ»ΡŒΠ·Ρ‹ ΠΎΡ‚ TypeScript ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ JavaScript

Π’Ρ‹ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ? Π­Ρ‚ΠΎ всС Π΅Ρ‰Π΅ открытая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΈ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² TS4? 🀦🏽

@ivnnv Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ // @ts-expect-error Π² TS 3.9, см. здСсь

@ndraiman @ts-expect-error Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… строк, Π½ΠΎ Π½Π΅ для Π±Π»ΠΎΠΊΠΎΠ² , поэтому ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ…, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Β«ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΒ».

Π’ΠΎΡ‚ Π΅Ρ‰Π΅ нСсколько ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² для вас:

Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ Ρ‚Π΅Π±Π΅ Π½ΡƒΠΆΠ½ΠΎ? Π§Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сообщСство, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ?

Π›ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования для этого β€” Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° написанию any для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ создаСтС. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π½Π΅ испытываСтС симпатии ΠΊ эстСтикС (которая, нСсомнСнно, влияСт Π½Π° настроСниС ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ), Π½ΠΎ просто ΠΈΠΌΠ΅Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΠ±Ρ‰ΠΈΠΌ оТиданиям, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ.

Π£ людСй Ρ€Π°Π·Π½Ρ‹Π΅ взгляды Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ, Π° Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚.

НСкоторым людям это ΠΎΡ‚Π½ΠΈΠΌΠ°Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ состояниС ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ люди ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, занимаясь ΠΎΠ±Ρ‹Π΄Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π΅Π»Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ пСрСнос ΠΊΠΎΠ΄Π°.
МСня Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈ странно Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, Π° вмСсто этого Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΡΠΎΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ привСдСниями any , Ρ‡Ρ‚ΠΎ часто ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Π³ΡƒΠ±Π½ΠΎΠ΅ влияниС Π½Π° Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (ΠΏΠΎΠΊΠ° Π½Π΅ появятся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹). ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚ прСимущСств Π² ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, с ΠΌΠΎΠ΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, это Π½Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

ΠŸΠ Π˜ΠœΠ•Π :

Один ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с JS Π½Π° TS, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ разрабатываСтся стороннСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.

Бинтаксис ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² пСрСнСсСнном ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ старыми, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, es2015, Π»ΠΈΠ±ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ синтаксиса ΠΈ мСньшСго количСства ΠΊΠΎΠ΄Π° ΠΈ Ρ‚. Π΄.

ΠŸΡ€ΠΈ пСрСносС этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ пСрСнСсСна Π½Π° TypeScript. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Ρ‹ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Π½Π΅ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΠΈΠ±ΠΎ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² большСм контСкстС, Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя ΠΎΠ±Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ для создания своих Ρ‚ΠΈΠΏΠΎΠ².

Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π² Ρ„Π°ΠΉΠ»Π΅ Π²ΠΎ врСмя Π΅Π³ΠΎ исправлСния. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ быстро ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² областях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Π·Π½Π°Π΅Ρ‚ ΠΈ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΅ΠΌΡƒ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ, ΠΈ ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ части Π½Π° ΠΏΠΎΡ‚ΠΎΠΌ.

Мой Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс, ΠΊΠΎΠ³Π΄Π° ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ JavaScript Π½Π° TypeScript (ΠΈ ΠΊΠΎΠ΄, Π½Ρƒ, Π½Π΅ Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅):

  1. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° .js Π² Ρ„Π°ΠΉΠ» .ts.
  2. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ TS вывСсти ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎ использованию
  3. Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ ΠΈΠ· использования
  4. ΠžΡΠΎΠ·Π½Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ ошибки - проклятиС ΠΌΠΎΠ΅Π³ΠΎ сущСствования
  5. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ошибки, Ρ‚Π΅ΠΌ самым ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ² количСство строк Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ½ΠΎΠ³Π΄Π° Ρ…3 ESLlint + TS (Ρ‡Π΅ΠΌ большС, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅?)
  6. Π£Π΄Π°Π»ΠΈΡ‚Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ // @ts-check Π²Π²Π΅Ρ€Ρ…Ρƒ, Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ² большС Ρ‚ΠΈΠΏΠΎΠ².

Если Π±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ:

  1. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ ΠΈΠ· .js Π² .ts
  2. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ TS вывСсти ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎ использованию
  3. Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ ΠΈΠ· использования
  4. // @ts-ignore-enable ... // @ts-ignore-disable ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ
  5. РаскоммСнтируйтС Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° я Π΄ΠΎΠ±Π΅Ρ€ΡƒΡΡŒ Π΄ΠΎ Π½ΠΈΡ…, ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹

Π Π΅ΡˆΠ°ΠΉΡ‚Π΅ сами, Ρ‡Ρ‚ΠΎ каТСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ. Π’ΠΎ ΠΆΠ΅ самоС ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ JS Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с большим количСством ΠΏΡ€Π°Π²ΠΈΠ» ESLint, ΠΈ Π²Π°ΠΌ приходится Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Ρ‰Π΅ΠΉ.

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² ESLint, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ /* eslint:disable */ ... /* eslint:enable */ Π² TypeScript.

PS Π― Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ понял, провСряя этот ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» Π±ΠΎΠ»Π΅Π΅ 20 ΠΌΠΈΠ½ΡƒΡ‚, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я (ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅) искали с 2017 Π³ΠΎΠ΄Π°, просто Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ скоро исполнится 3 Π³ΠΎΠ΄Π°.

@weswigham @RyanCavanaugh

НапоминаниС :+1:

ΠžΡ‚Π΄Π°ΠΌ ΠΏΠ΅Ρ€Π²Π΅Π½Ρ†Π° Π² ΠΎΠ±ΠΌΠ΅Π½ Π½Π° это

@agusterodin Ввоя ΠΆΠ΅Ρ€Ρ‚Π²Π° ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π·Π»Π°.....

Π›Π°Π΄Π½ΠΎ, Π½Π° самом Π΄Π΅Π»Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ происходит, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ я просто даю простой ΠΏΠΈΠ°Ρ€ :)

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π»ΠΈΡ‡Π½ΠΎ я ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ согласСн с ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ TS - эта функция являСтся Π·Π»ΠΎΠΌ, Π²Ρ‹ всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ использования @ts-ignore , Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ @ts-ignore-enable (ΠΈΠ»ΠΈ @ts-ignore-start , Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π½ΠΈ).
Но ΠΈΠ½ΠΎΠ³Π΄Π°, Π·Π½Π°Π΅Ρ‚Π΅, пословица Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ drinking posion to satisfie thirst , я знаю, Ρ‡Ρ‚ΠΎ это ΠΏΠ»ΠΎΡ…ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€, Π½ΠΎ ΠΎΠ½ просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ.


ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ: Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ объяснСниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.
Π­Ρ‚ΠΎΡ‚ PR добавляСт Π΄Π²Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ts-ignore-enable ΠΈ ts-ignore-disable .

  1. Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ts-ignore-enable, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ игнорируСтся.
...   <-- this is normal
// @ts-ignore-enable
XXX    <-- this is ignored
...    <-- this is ignored
  1. Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·, Π½ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.
// @ts-ignore-enable
XXX  <-- this is ignored  
// @ts-ignore-enable       <-- you could remove this line.
YYY   <-- this is ignored
// @ts-ignore-disable
ZZZ   <-- this is normal
// @ts-ignore-disable      <-- you could remove this line.
  1. // @ts-ignore-disable ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚.

  2. @ts-expect-error Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ Ρ€Π΅Π³ΠΈΠΎΠ½Π΅

// @ts-ignore-enable
XXX  <-- this is ignored
// @ts-expect-error       <-- No error message. whatever next line has error or not.
YYY   <-- this is ignored
  1. Π½Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ€Π΅Π³ΠΈΠΎΠ½Π°, это просто ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.
// @ts-ignore-enable A
XXX  <-- this is ignored  
// @ts-ignore-enable   B    <-- you could remove this line.
YYY   <-- this is ignored 
// @ts-ignore-disable B
ZZZ   <-- this is normal
// @ts-ignore-disable A     <-- you could remove this line.

Π’ идСальном ΠΌΠΈΡ€Π΅ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ², Π²Π΅Ρ€Π½ΠΎ? :ΠΏΠΎΡ‚_ΡƒΠ»Ρ‹Π±ΠΊΠ°:
МнС это Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ фантастичСской Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ стартСров, Π΄Π°ΠΆΠ΅ случайного ΠΎΡ‚Π²Π΅Ρ‚Π° SO, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ ΠΈΠ»ΠΈ Π½Π΅ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹. Π’ основном, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΌΠΎΠ΅ΠΌ бСзопасном ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт ΠΌΠΎΠΈΠΌ настройкам. Π― просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΎΡ‡Π΅Π½ΡŒ строгиС настройки ΠΈ ΠΈΠ·-Π·Π° этого часто приходится ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΠΊΡƒ. Π­Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ я Ρ…ΠΎΡ‡Ρƒ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, это Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла.

Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° β€” это удобство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠ½Π΅ каТСтся ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ, учитывая Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ я всС Π΅Ρ‰Π΅ ΠΌΠΎΠ³Ρƒ @ts-ignore ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку Π² Π±Π»ΠΎΠΊΠ΅.

Π― понимаю Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ послСдствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ для людСй, ΠΈΠ΄ΡƒΡ‰ΠΈΡ… I'll just ignore this because it's easier . Насколько я понимаю, любой, ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ области Π±Π»ΠΎΠΊΠ° для drink poison to satisfy their thirst , ΡƒΠΆΠ΅ ΠΏΡŒΠ΅Ρ‚ ΠΊΠ°ΠΏΠ»ΠΈ яда с @ts-ignore .

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ @ts-nocheck Π² Ρ„Π°ΠΉΠ»Π°Ρ… .ts , я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ @ts-check Π² Ρ„Π°ΠΉΠ»Π°Ρ… .ts , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ²:

import fs from 'fs'

fs.readFileSync(32423) // type checking

// @ts-nocheck
fs.foobarbaz() // type checking is off
fs.__randomThing()

// @ts-check
fs.readFileSync(123) // now type checking again

Π­Ρ‚ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Β«Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°Β». Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ² ΠΎΡ‚ - Π΄ΠΎ любой строки.

ΠžΠ‘ΠΠžΠ’Π›Π•ΠΠ˜Π• Π― ошибся, см. https://github.com/microsoft/TypeScript/pull/40267#issuecomment -713840095 для исправлСния.

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ пСрСнСсти ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ styled-components Π½Π° TypeScript я столкнулся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° @ts-ignore нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π΄ строками шаблона (ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅). Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±Π»ΠΎΠΊΠ° игнорирования.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ошибки TS, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я пытался ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

import styled from "styled-components";
import { Button } from "...";

// @ts-ignore here does not work
const StyledNavBar = styled.div`
  ${Button} {
    margin: auto 0;
  }
`;

Π’ качСствС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ примСчания: я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ TS, я Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Какая Ρ‚ΠΎΠ³Π΄Π° рСкомСндация?

@weswigham Π§Ρ‚ΠΎ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΎ состоянии ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ продуктивности Π² контСкстС эстСтики? ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, Π²Ρ‹ Π½Π΅ испытываСтС Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ сочувствия ΠΊ ΠΊΡ€ΠΎΠ²ΠΎΡ‚ΠΎΡ‡Π°Ρ‰ΠΈΠΌ Π³Π»Π°Π·Π°ΠΌ; Π½ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ вас ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ прСдставлСния ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, пСрСносС ΠΊΠΎΠ΄Π° ΠΈ процСссах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я описал? Π’Ρ‹ всС Π΅Ρ‰Π΅ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π²Ρ‹Π³ΠΎΠ΄Ρ‹ _Π²ΠΎΠΎΠ±Ρ‰Π΅_ послС рассмотрСния ΠΌΠΎΠ΅Π³ΠΎ коммСнтария ΠΈ Π² контСкстС ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ? Π― Ρ‚Π°ΠΊΠΆΠ΅ описал нСсколько Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ситуаций, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ области Π±Π»ΠΎΠΊΠ°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ эта Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ сравнима с ESLint ΠΈ Ρ‚ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΠΎΡ‚ Π½Π΅Π΅?

Научно Π΄ΠΎΠΊΠ°Π·Π°Π½ΠΎ , Ρ‡Ρ‚ΠΎ мСньшСС количСство ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²ΠΎΠ² ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ; ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ области Π±Π»ΠΎΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ количСство ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΏΡ€ΠΈ пСрСносС ΠΊΠΎΠ΄Π°. Π Π°Π·Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° TS Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Β«ΠΏΠΎ сути, ΠΌΡ‹ считаСм, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ подавлСния Π² TypeScriptΒ». это ΠΌΠ½Π΅Π½ΠΈΠ΅, основанноС Π½Π° ΠΆΠΈΠ²ΠΎΠΌ ΠΈ Π΄Ρ‹ΡˆΠ°Ρ‰Π΅ΠΌ TypeScript, ΠΈ Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ людям Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»ΠΎΡ…ΠΎ написанный ΠΊΠΎΠ΄ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Π±Π°Π·Ρ‹, с большСй Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ Π»ΠΈΠ½Ρ‚ΠΈΠ½Π³Π°; Π² Ρ‚Π°ΠΊΠΈΡ… ситуациях Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ строку, Π½ΠΎ Π½Π΅ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ.

МнС каТСтся, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ΄Π΅Ρ‚Π΅ ΠΊ ΡƒΡ‚ΠΎΠΏΠΈΠΈ, игнорируя Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. @sandersn Π’Ρ‹ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΈ Π½ΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠΎΠΈΡ… вопросов ΠΈ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ старого ΠΎΡ‚Π²Π΅Ρ‚Π° вмСсто Π½ΠΎΠ²Ρ‹Ρ… обсуТдСний ΠΏΠΎ Π΄Π΅Π»Ρƒ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ заявляСтС , Ρ‡Ρ‚ΠΎ Ссли ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ Ρ€Π΅ΡˆΠΈΡ‚ ΠΈΠ½Π°Ρ‡Π΅, это Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, ΠΈ Π² этом случаС: Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ?

КомандС Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ явно ΠΆΠ΅Π»Π°Π΅ΠΌΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

Π”Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ вопрос Π² подвСшСнном состоянии Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ смысла.

МнС Таль, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π°Ρ‚ΡŒ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π²Π°ΠΌ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ Β«ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, ΠΏΠΎΠ·ΠΆΠ΅Β» β€” это ΠΎΡ‚Π²Π΅Ρ‚, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Π°ΠΌ придСтся Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΆΠΈΡ‚ΡŒ. Π›ΡŽΠ±Π°Ρ конкрСтная функция Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π½Π΅Π΄Ρ€Π΅Π½Π° Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π·Π°Π²Ρ‚Ρ€Π°, Π° для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ нашСго Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ тысячи ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π² настоящСС врСмя ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ Π·Π° Π½Π°ΡˆΡƒ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ эргономичным способом. ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π΄Π°Π»ΡŒΠ½ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΉ.

ΠœΡ‹ расставляСм ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ², состояния Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ, прСобладания этих сцСнариСв, инструмСнтов ΠΈ сотСн Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ². Π’Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΌΠΈ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ·ΠΆΠ΅. Π’Π°ΠΊΠΎΠ²Π° ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° Β«ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅Β», ΠΈ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ прСдставлСниС Ρ‚ΠΎΠ³ΠΎ, Π² Ρ‡Π΅ΠΌ состоит это ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅. РСшСниС здСсь, Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, с Ρ‡Π΅ΠΌ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ люди, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эта функция Π±Ρ‹Π»Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠΉ, Ρ‡Π΅ΠΌ любая другая функция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ, сотни ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

Π’ΠΎΠ½ здСсь, чСстно говоря, склонСн ΠΊ Π²Ρ€Π°ΠΆΠ΄Π΅Π±Π½ΠΎΠΌΡƒ ΠΈ Π»ΠΈΡ‡Π½ΠΎΠΌΡƒ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρƒ, ΠΏΠΎΠ΄Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊ ΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ°Ρ‚ΡƒΠΌΡƒ Π½Π΅ способствуСт конструктивному Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π³Π΄Π΅ это добавляСт цСнности, которая прСвосходит свою ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°ΠΌΠΈ.

ΠŸΡ€ΠΎΡˆΡƒ прощСния Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ поставил ΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ°Ρ‚ΡƒΠΌ. Π― Π±Ρ‹Π» ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ΅Π½, ΡƒΠ²ΠΈΠ΄Π΅Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ PR, Π½ΠΎ Π½Π΅ ΠΏΠΎ этому вопросу. Π― согласСн с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΉ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½Π΅ вносит Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ конструктивного Π²ΠΊΠ»Π°Π΄Π°.

Π― ΠΌΠΎΠ³Ρƒ ΡΠΎΠ³Π»Π°ΡΠΈΡ‚ΡŒΡΡ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ этот вопрос, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, придСтся ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ. Π― прСдоставил Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΈ спросил, ΠΊΠ°ΠΊΠΈΠ΅ Π΅Ρ‰Π΅ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ, Π½ΠΎ я Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΎΡ‚Π²Π΅Ρ‚Π°. ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ‹ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌ это Π½ΠΈ Π±Ρ‹Π»ΠΎ, ΠΌΠΎΠΉ довольно нСконструктивный ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π±Ρ‹Π» Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ _ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ_ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

По-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ каТСтся, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ фактичСского продвиТСния ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 700 ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ рСакциями, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ нСсколько Π»Π΅Ρ‚, Π½Π΅ Π±Ρ‹Π»ΠΎ сдСлано. Π― Π½Π΅ Π²Π΅Ρ€ΡŽ, Ρ‡Ρ‚ΠΎ это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстрСС, Π½ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ заинтСрСсована Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ участников Π΅ΡΡ‚ΡŒ Π»ΠΈΡ‡Π½Ρ‹Π΅ мнСния ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π½Π΅Π΅. Π― ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ понимаю всС эти Π²Π΅Ρ‰ΠΈ. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, я Π½Π΅ ΠΎΠ± этом. Π― Ρ…ΠΎΡ‡Ρƒ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€, Π½ΠΎ мСня ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚.

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΉ ΠΎΡ‚Π·Ρ‹Π² рассмотрСн ΠΈ, учитывая Π΅Π³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€, Π½Π° Π½Π΅Π³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΈ. Π­Ρ‚ΠΎ Π½Π΅ большой сбой Π² Π½Π°Π±ΠΎΡ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎ Ρ‡Π΅ΠΌ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ PR, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» создан Π·Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ВсС Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅, люди ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ игнорирования Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΈ я спросил, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сообщСство, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π― катСгоричСски Π½Π΅ согласСн с нСсколькими ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ, сдСланными ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, ΠΈ Π²ΠΎΠ·Ρ€Π°ΠΆΠ°Π» ΠΏΡ€ΠΎΡ‚ΠΈΠ² этого, Π±Ρ‹Π» сдСлан PR ΠΈ Π΄Π°Π½ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ «Ссли ΠΌΡ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄ΡƒΠΌΠ°Π΅ΠΌΒ», Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ измСнится.

Π’ΠΎΡ‚ Π³Π΄Π΅ ΠΌΠΎΠ΅ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ. Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ внСсСно Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ‡Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ игнорируя ΠΌΠΎΠΈ собствСнныС ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… людСй.

ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΠΈΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ _ΠΏΠΎ собствСнному ТСланию_, ΠΌΡ‹ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ этому вопросу. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΎΡ‚ сообщСства, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ я ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ поставил ΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ°Ρ‚ΡƒΠΌ.

Π― ΠΏΡ€ΠΈΠ²Π΅Π» нСсколько Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния @weswigham , ΠΏΡ€ΠΈΠ²Π΅Π» нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ, чСстно говоря, всС Π΅Ρ‰Π΅ ΠΆΠ΄Ρƒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° Π½ΠΈΡ…. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ, казалось, ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΎ, Ρ‚Π°ΠΊ это Π±Ρ‹Ρ‚ΡŒ явно расстроСнным ΠΈ нСконструктивным.

Как Π½Π°ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ΡΡŽΠ΄Π°? ΠšΠ°ΠΊΠΈΡ… ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² Ρ…ΠΎΡ‚Π΅Π»Π° Π±Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π°? Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΡΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ Π·Π° Β«ΠœΡ‹ расставляСм ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ², состояния Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ, прСобладания этих сцСнариСв, инструмСнтов ΠΈ сотни Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²Β». Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ нСсколько Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π², Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»Π° _совсСм_.

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ я понимаю, Ρ‡Ρ‚ΠΎ это Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, Ссли ΠΌΡ‹ ΠΎΡ‚Π²Π»Π΅Ρ‡Π΅ΠΌ мнСния людСй ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Ρ„ΠΈΡ‡Π° Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹. БСйчас Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π° приняла Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅/ΠΎΡ‚Π²Π΅Ρ‚ (Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ) ΠΈ ΠΎΠ±Π½Π°Ρ€ΠΎΠ΄ΠΎΠ²Π°Π»Π° Π΅Π³ΠΎ. Если это Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ трСбуСтся, Ρ‚ΠΎ, поТалуйста, скаТитС ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ _любой_ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ для TypeScript, Π½ΠΎ особСнно этой.

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования многострочного ( @ts-ignore-start+@ts-ignore-end ) ΠΈΠ»ΠΈ встроСнного (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, /* @ts-ignore */ ) @ts-ignore .
ΠžΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π°Ρ обстановка:

  • "noUnusedParameters": true
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ESLint require-jsdoc .
  • Код, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ (ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€):
type Data = Record<string, unknown>;
type PrepareSettings = Record<string, unknown>;

/**
 * This is base class that will be inherited.
 */
class SuperClass {
    /**
     * Prepare data for further usage.
     * 
     * <strong i="16">@param</strong> data
     *      Data that should be prepared.
     * <strong i="17">@param</strong> settings
     *      Operation settings.
     */
    prepareData(data: Data, settings: PrepareSettings): Data | undefined {
        return data;
    }

    // Some additional methods...
}

Для описанной ситуации TypeScript Π²Ρ‹Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: 'settings' is declared but its value is never read.(6133) .
ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² @ts-ignore послС ΠΊΠΎΠ½Ρ†Π° коммСнтария ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ:

     */   // @ts-ignore
    prepareData(data: Data, settings: PrepareSettings): Data | undefined {

Но послС этого ESLint Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Missing JSDoc comment .
Π˜Ρ‚Π°ΠΊ, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

     */   // @ts-ignore
    prepareData(data: Data, settings: PrepareSettings): Data | undefined {   // eslint-disable-line require-jsdoc

Π§Ρ‚ΠΎ нСкрасиво ΠΈ нСкрасиво.

@RyanCavanaugh @weswigham @sandersn

ЕТСмСсячноС Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сообщСство Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ это с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ TypeScript. Π•ΡΡ‚ΡŒ большая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°, ΠΈ Ρ‡Π΅Π³ΠΎ Π² настоящСС врСмя Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚, Ρ‚Π°ΠΊ это ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π― понимаю, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ TypeScript β€” Π½Π΅Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΠΎΠ΄Π²ΠΈΠ³. Π”Π΅Π»Π° Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ это ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ прямыС дСйствия, я Π±ΡƒΠ΄Ρƒ рСгулярно Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΎΠ± этом. Π― Π½Π΅ сдамся, ΠΏΠΎΠΊΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ принято, ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, каТСтся, Π²Π»ΠΈΡΡŽΡ‚ (Π² основном, ΠΊΠΎΠ³Π΄Π° я !@#).

По ΠΏΡ€ΠΎΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ этих Π»Π΅Ρ‚, хотя я ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» ΠΎΡˆΠ°Ρ€Π°ΡˆΠ΅Π½ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ этого Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Ρ‚Π°ΠΌ Π½Π΅Ρ‚, я Π»ΠΈΡ‡Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ пСрСосмыслил Π΅Π³ΠΎ... Когда Π΅ΡΡ‚ΡŒ огромная ΠΊΡƒΡ‡Π° @ts-ignore , Π²Ρ‹ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ с вашим ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΡŒΡ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π½Π° ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². ΠœΡ‹ всС ΠΈΠ½ΠΎΠ³Π΄Π° довольно Π»Π΅Π½ΠΈΠ²Ρ‹ ΠΈ Ρ…ΠΎΡ‚ΠΈΠΌ скорости Π² Ρ†Π΅Π»ΠΎΠΌ, Π½ΠΎ Π² настоящСС врСмя часто ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Ρ‡Π΅ΠΌ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ нСсколько @ts-ignore Π² большиС куски ΠΊΠΎΠ΄Π°. Если этот баланс НЕудобства Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· нас Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ @ts-ignore-enable, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ качСство всСх Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ здСсь ΠΈ Ρ‚Π°ΠΌ.

ΠšΡΡ‚Π°Ρ‚ΠΈ, хотя ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ πŸ‘ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΉ Π½Π° этот вопрос, - это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдвзятым, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС людСй ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π±Π΅Π· этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ ΠΌΠΎΠ»Ρ‡Π°Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΡ… здСсь Π½Π΅Ρ‚.

@JerryGreen Π‘ΡΡ‹Π»Π°ΡΡΡŒ Π½Π° свои старыС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, я сказал Ρ‚ΠΎ ΠΆΠ΅ самоС. Π‘ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ люди ΡƒΠΆΠ΅ Π΄Π΅Π»Π°ΡŽΡ‚ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ игнорирования. НСт ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ яда, утвСрТдая, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ _none_ .

Π›ΠΈΠ±ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ @ts-ignore , Π»ΠΈΠ±ΠΎ сдСлайтС Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ этого, ΠΈ люди, ΠΏΠΈΡˆΡƒΡ‰ΠΈΠ΅ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ΄, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ @ts-ignore , Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠ»ΠΎΡ…ΠΎ, ΠΊΠ°ΠΊ функция игнорирования Π±Π»ΠΎΠΊΠΎΠ², это Ρ‚ΠΎ ΠΆΠ΅ самоС, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΌΠ΅Π½Π΅Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

БообщСству всС Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ TypeScript.

@JerryGreen Π‘ΡΡ‹Π»Π°ΡΡΡŒ Π½Π° свои старыС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, я сказал Ρ‚ΠΎ ΠΆΠ΅ самоС. Π‘ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ люди ΡƒΠΆΠ΅ Π΄Π΅Π»Π°ΡŽΡ‚ это с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ игнорирования. НСт ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ яда, утвСрТдая, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ _none_ .

Π›ΠΈΠ±ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ @ts-ignore , Π»ΠΈΠ±ΠΎ сдСлайтС Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ этого, ΠΈ люди, ΠΏΠΈΡˆΡƒΡ‰ΠΈΠ΅ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ΄, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ @ts-ignore , Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠ»ΠΎΡ…ΠΎ, ΠΊΠ°ΠΊ функция игнорирования Π±Π»ΠΎΠΊΠΎΠ², это Ρ‚ΠΎ ΠΆΠ΅ самоС, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΌΠ΅Π½Π΅Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

БообщСству всС Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ TypeScript.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… особых сцСнариях ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ³Π½ΠΎΡ€ @TS. НапримСр, ΠΈΠΌΠΏΠΎΡ€Ρ‚ CDN Π½Π΅ зависит ΠΎΡ‚ node_ The. Π€Π°ΠΉΠ» TS Π½Π΅ сущСствуСт Π² сцСнарии ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

@ L-Hknu Бпасибо Π·Π° Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΠ΅. Π›ΡŽΠ΄ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ESLint.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ игнорирования Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… контСкстах, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ…, Π³Π΄Π΅ ΠΎΠ½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π­Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для игнорирования ΠΊΠΎΠ΄Π°.

Π― Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ игнорирования Π±Π»ΠΎΠΊΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π― отказался ΠΎΡ‚ прСобразования Π² Ρ‚ΠΈΠΏΡ‹ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ процСсс прСобразования Π±Ρ‹Π» Π±Ρ‹ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ с ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±Π»ΠΎΠΊΠΎΠ². МнС это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ люди Π²ΠΎΠΉΠ΄ΡƒΡ‚ Π² Π΄Π²Π΅Ρ€ΡŒ, Π½Π°Π±Ρ€Π°Π² тСкст; ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ люди, скорСС всСго, Π±ΡƒΠ΄ΡƒΡ‚ Π±ΠΎΠ»Π΅Π΅ эффСктивно ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ конвСрсии, особСнно учитывая, насколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° эстСтика ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΌΠΈ ΠΈ построчными коммСнтариями.

Мой самый большой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования этой Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Ρ‹Π» Π±Ρ‹ для сторонних ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ машинописного тСкста, ΠΈ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

@ L-Hknu Бпасибо Π·Π° Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΠ΅. Π›ΡŽΠ΄ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ESLint.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ игнорирования Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… контСкстах, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ…, Π³Π΄Π΅ ΠΎΠ½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π­Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для игнорирования ΠΊΠΎΠ΄Π°.

Π― Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ игнорирования Π±Π»ΠΎΠΊΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π― отказался ΠΎΡ‚ прСобразования Π² Ρ‚ΠΈΠΏΡ‹ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ процСсс прСобразования Π±Ρ‹Π» Π±Ρ‹ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ с ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±Π»ΠΎΠΊΠΎΠ². МнС это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ люди Π²ΠΎΠΉΠ΄ΡƒΡ‚ Π² Π΄Π²Π΅Ρ€ΡŒ, Π½Π°Π±Ρ€Π°Π² тСкст; ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ люди, скорСС всСго, Π±ΡƒΠ΄ΡƒΡ‚ Π±ΠΎΠ»Π΅Π΅ эффСктивно ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ конвСрсии, особСнно учитывая, насколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° эстСтика ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΌΠΈ ΠΈ построчными коммСнтариями.

ΠŸΠΎΡ…ΠΎΠΆΠ΅, это сдСлано
β„–40267

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ