# yarn

Published articles for yarn.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## NUS Researchers Turn Electronic Threads Into a Touchscreen Sleeve

DevFeed: [NUS Researchers Turn Electronic Threads Into a Touchscreen Sleeve](<https://devfeed.tech/articles/nus-researchers-turn-electronic-threads-into-a-touchscreen-sleeve-100542.md>)

Original publisher: [Read original article](<https://www.yankodesign.com/2026/10/26/nus-researchers-turn-electronic-threads-into-a-touchscreen-sleeve/>)

Author: JC Torres

Published: 2026-10-26T14:20:53Z

Content type: article

Language: en

Sources: [Yanko Design](<https://devfeed.tech/sources/yanko-design.md>)

Topics: [touchscreen](<https://devfeed.tech/topics/touchscreen.md>), [input](<https://devfeed.tech/topics/input.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>), [Image](<https://devfeed.tech/topics/image.md>)

Tags: [calculator](<https://devfeed.tech/tags/calculator.md>), [electronic](<https://devfeed.tech/tags/electronic.md>), [national-university-of-singapore](<https://devfeed.tech/tags/national-university-of-singapore.md>), [prototype](<https://devfeed.tech/tags/prototype.md>), [research](<https://devfeed.tech/tags/research.md>), [singapore](<https://devfeed.tech/tags/singapore.md>), [technology](<https://devfeed.tech/tags/technology.md>), [technology-textile-wearables-prototype-research-yarn](<https://devfeed.tech/tags/technology-textile-wearables-prototype-research-yarn.md>), [textile](<https://devfeed.tech/tags/textile.md>), [threads](<https://devfeed.tech/tags/threads.md>), [touchscreen](<https://devfeed.tech/tags/touchscreen.md>), [wearables](<https://devfeed.tech/tags/wearables.md>), [yarn](<https://devfeed.tech/tags/yarn.md>)

### AI overview

NUS researchers built a flexible touchscreen sleeve from 54 electronic fibers, each carrying 96 LEDs and a touch-sensitive layer. Pressing a fiber closes a circuit so the thread itself detects input; the display can show images and video, and the sleeve demonstrated a calculator, compass, photo viewer, voice commands, and Bluetooth image transfers. Sensors can rotate the interface with the arm and adjust brightness. The prototype is 96 by 54 pixels and still relies on separate controller circuits and battery packs. NUS reports little change in light output or touch response after 50 gentle-cycle detergent washes in a laundry bag and 1,000 bends, but this does not establish long-term durability. Higher resolution and more integrated electronics remain challenges; no retail price or release date is announced.

### Source excerpt

NUS Researchers Turn Electronic Threads Into a Touchscreen Sleeve Checking your sleeve usually means looking for a stain, not opening a calculator. Researchers at the National University of Singapore have given that familiar piece...

## npm uninstall: How to Remove (and Update) npm Packages

DevFeed: [npm uninstall: How to Remove (and Update) npm Packages](<https://devfeed.tech/articles/npm-uninstall-how-to-remove-and-update-npm-packages-99224.md>)

Original publisher: [Read original article](<https://markodenic.com/npm-uninstall-package/>)

Author: Marko

Published: 2026-10-25T09:00:00Z

Content type: tutorial

Language: en

Sources: [Marko Denic Blog](<https://devfeed.tech/sources/marko-denic-blog.md>)

Topics: [npm](<https://devfeed.tech/topics/npm.md>), [Package Management](<https://devfeed.tech/topics/package-management.md>)

Tags: [dependencies](<https://devfeed.tech/tags/dependencies.md>), [deployments](<https://devfeed.tech/tags/deployments.md>), [dev](<https://devfeed.tech/tags/dev.md>), [eslint](<https://devfeed.tech/tags/eslint.md>), [global](<https://devfeed.tech/tags/global.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [install](<https://devfeed.tech/tags/install.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [latest](<https://devfeed.tech/tags/latest.md>), [latest-tag](<https://devfeed.tech/tags/latest-tag.md>), [local](<https://devfeed.tech/tags/local.md>), [major](<https://devfeed.tech/tags/major.md>), [npm](<https://devfeed.tech/tags/npm.md>), [npm-packages](<https://devfeed.tech/tags/npm-packages.md>), [npx](<https://devfeed.tech/tags/npx.md>), [package](<https://devfeed.tech/tags/package.md>), [package-json](<https://devfeed.tech/tags/package-json.md>), [pnpm](<https://devfeed.tech/tags/pnpm.md>), [project](<https://devfeed.tech/tags/project.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [update](<https://devfeed.tech/tags/update.md>), [web-development](<https://devfeed.tech/tags/web-development.md>), [yarn](<https://devfeed.tech/tags/yarn.md>)

### AI overview

`npm uninstall <package>` removes a package from `node_modules`, `package.json`, and `package-lock.json`; it works for dependencies and dev dependencies, and multiple names can be supplied. Global packages require `-g`. For a clean reinstall matching the lock file, `npm ci` deletes `node_modules` and fails if the lock file conflicts with `package.json`; `npm install` can update the lock file. `npm outdated` shows newer versions, while `npm update` stays within declared version ranges and does not cross major versions. For latest major releases, the excerpt recommends updating ranges with `npm-check-updates` or installing `@latest`, then reviewing changelogs and running tests. `npm ls` can show why a package remains installed, and Knip can identify unused dependencies. The excerpt advises using one package manager per project to avoid conflicting lock files.

### Source excerpt

How to uninstall npm packages: local, dev and global packages, several at once, everything in node_modules, finding unused dependencies, plus how to update all packages and the yarn and pnpm equivalents.

## Dependabot hardens support for private registries

DevFeed: [Dependabot hardens support for private registries](<https://devfeed.tech/articles/dependabot-hardens-support-for-private-registries-73727.md>)

Original publisher: [Read original article](<https://github.blog/changelog/2022-12-13-dependabot-hardens-support-for-private-registries>)

Author: Kevin Duck

Published: 2022-12-13T20:06:13Z

Content type: release

Language: en

Sources: [GitHub Changelog](<https://devfeed.tech/sources/github-changelog.md>)

Topics: [Dependabot](<https://devfeed.tech/topics/dependabot.md>)

Tags: [dependabot](<https://devfeed.tech/tags/dependabot.md>), [docker](<https://devfeed.tech/tags/docker.md>), [ecosystems](<https://devfeed.tech/tags/ecosystems.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [maven](<https://devfeed.tech/tags/maven.md>), [npm](<https://devfeed.tech/tags/npm.md>), [nuget](<https://devfeed.tech/tags/nuget.md>), [private](<https://devfeed.tech/tags/private.md>), [public](<https://devfeed.tech/tags/public.md>), [python](<https://devfeed.tech/tags/python.md>), [registries](<https://devfeed.tech/tags/registries.md>), [support](<https://devfeed.tech/tags/support.md>), [updates](<https://devfeed.tech/tags/updates.md>), [version](<https://devfeed.tech/tags/version.md>), [yarn](<https://devfeed.tech/tags/yarn.md>)

### AI overview

Dependabot version updates will no longer make package requests to public registries when private registries are configured for Bundler, Docker, Gradle, Maven, npm, Nuget, Python, or Yarn. The excerpt points to configuration guidance for limiting version updates to private registries but provides no further setup details.

### Source excerpt

We've hardened our Dependabot support for private registries such that it will no longer make package requests to public registries if private registries are configured for the following ecosystems: Bundler...

## Dependabot can now generate security and version updates for Yarn v2 and v3

DevFeed: [Dependabot can now generate security and version updates for Yarn v2 and v3](<https://devfeed.tech/articles/dependabot-can-now-generate-security-and-version-updates-for-yarn-v2-and-v3-73824.md>)

Original publisher: [Read original article](<https://github.blog/changelog/2022-10-20-dependabot-can-now-generate-security-and-version-updates-for-yarn-v2-and-v3>)

Author: Kevin Duck

Published: 2022-10-20T17:20:05Z

Content type: release

Language: en

Sources: [GitHub Changelog](<https://devfeed.tech/sources/github-changelog.md>)

Topics: [Yarn](<https://devfeed.tech/topics/yarn.md>), [Dependabot](<https://devfeed.tech/topics/dependabot.md>), [software composition analysis](<https://devfeed.tech/topics/software-composition-analysis.md>)

Tags: [added](<https://devfeed.tech/tags/added.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dependabot](<https://devfeed.tech/tags/dependabot.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [ecosystem](<https://devfeed.tech/tags/ecosystem.md>), [file](<https://devfeed.tech/tags/file.md>), [files](<https://devfeed.tech/tags/files.md>), [npm](<https://devfeed.tech/tags/npm.md>), [npm-ecosystem](<https://devfeed.tech/tags/npm-ecosystem.md>), [package-json](<https://devfeed.tech/tags/package-json.md>), [proactive](<https://devfeed.tech/tags/proactive.md>), [security](<https://devfeed.tech/tags/security.md>), [support](<https://devfeed.tech/tags/support.md>), [updates](<https://devfeed.tech/tags/updates.md>), [updating](<https://devfeed.tech/tags/updating.md>), [v1](<https://devfeed.tech/tags/v1.md>), [v2](<https://devfeed.tech/tags/v2.md>), [v3](<https://devfeed.tech/tags/v3.md>), [version](<https://devfeed.tech/tags/version.md>), [yarn](<https://devfeed.tech/tags/yarn.md>)

### AI overview

Dependabot now supports security and version updates for dependencies in Yarn v2 and v3 `package.json` and `yarn.lock` files, alongside existing Yarn v1 support. No action is needed for repositories with Dependabot security updates enabled. To receive proactive version updates, add an `npm` ecosystem entry to `dependabot.yml`. The excerpt does not provide further setup details.

### Source excerpt

Dependabot has added support for updating dependencies in Yarn v2 and Yarn v3 manifests (package.json, and yarn.lock files). This is in addition to the existing support for Yarn v1. There...

## How to Upgrade to React 18

DevFeed: [How to Upgrade to React 18](<https://devfeed.tech/articles/how-to-upgrade-to-react-18-22346.md>)

Original publisher: [Read original article](<https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html>)

Published: 2022-03-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [React](<https://devfeed.tech/sources/react.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [deprecated](<https://devfeed.tech/topics/deprecated.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [install](<https://devfeed.tech/tags/install.md>), [latest](<https://devfeed.tech/tags/latest.md>), [native](<https://devfeed.tech/tags/native.md>), [npm](<https://devfeed.tech/tags/npm.md>), [react](<https://devfeed.tech/tags/react.md>), [react-dom](<https://devfeed.tech/tags/react-dom.md>), [strategy](<https://devfeed.tech/tags/strategy.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [using](<https://devfeed.tech/tags/using.md>), [yarn](<https://devfeed.tech/tags/yarn.md>)

### AI overview

React 18's upgrade path centers on adopting the new root API: install `react` and `react-dom`, replace `ReactDOM.render` with `createRoot` and `root.render`, use `root.unmount`, and replace `hydrate` with `hydrateRoot` for server-rendered apps. Legacy `render` warns and leaves the app operating in React 17 mode. Server streaming options differ by runtime: `renderToPipeableStream` supports Node, while `renderToReadableStream` targets edge environments; `renderToNodeStream` is deprecated, and `renderToString` and `renderToStaticMarkup` have limited Suspense support. TypeScript projects should update React typings, including explicitly declaring `children` where needed. With `createRoot`, updates from promises, timers, and native events are automatically batched; `flushSync` opts out. The article also flags Strict Mode's development remount check, test configuration for `act` warnings, and React 18's end of Internet Explorer support.

### Source excerpt

This blog site has been archived. Go to react.dev/blog to see the recent posts. As we shared in the release post, React 18 introduces features powered by our new concurrent renderer, with a gradual adoption strategy for existing applications. In this post, we will guide you through the steps for upgrading to React 18. Please report any issues you encounter while upgrading to React 18. Note for React Native users: React 18 will ship in a future version of React Native. This is because React 18 relies on the New React Native Architecture to benefit from the new capabilities presented in this blogpost. For more information, see the React Conf keynote here. Installing To install the latest version of React: npm install react react-dom Or if you're using yarn: yarn add react react-dom Updates to Client Rendering APIs When you first install React 18, you will see a warning in the console: ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot React 18 introduces a new root API which provides better ergonomics for managing roots. The new root API also enables the new concurrent renderer, which allows you to opt-into concurrent features. // Before import { render } from 'react-dom'; const container = document.getElementById('app'); render(<App tab="home" />, container); // After import { createRoot } from 'react-dom/client'; const container = document.getElementById('app'); const root = createRoot(container); // createRoot(container!) if you use TypeScript root.render(<App tab="home" />); We've also changed unmountComponentAtNode to root.unmount: // Before unmountComponentAtNode(container); // After root.unmount(); We've also removed the callback from render, since it usually does not have the expected result when using Suspense: // Before const container = document.getElementById('app'); render(<App tab="home" />,

## Rails 6 - Can't Find Application.js

DevFeed: [Rails 6 - Can't Find Application.js](<https://devfeed.tech/articles/rails-6-can-t-find-application-js-28273.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/rails/2021/12/18/rails-6-can-t-find-application-js.html>)

Author: Fuzzygroup

Published: 2021-12-18T14:51:00Z

Content type: article

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Ruby on Rails](<https://devfeed.tech/topics/ruby-on-rails.md>), [software-development](<https://devfeed.tech/topics/software-development.md>), [Web app](<https://devfeed.tech/topics/webapp.md>)

Tags: [asset](<https://devfeed.tech/tags/asset.md>), [asset-pipeline](<https://devfeed.tech/tags/asset-pipeline.md>), [build](<https://devfeed.tech/tags/build.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [css](<https://devfeed.tech/tags/css.md>), [dev](<https://devfeed.tech/tags/dev.md>), [js](<https://devfeed.tech/tags/js.md>), [rails](<https://devfeed.tech/tags/rails.md>), [watch](<https://devfeed.tech/tags/watch.md>), [yarn](<https://devfeed.tech/tags/yarn.md>)

### AI overview

The initial "Webpacker can't find application.js" error was addressed with `bundle exec rails webpacker:install`, but the author later traced the broader missing assets to starting Rails the old way. Their project's `bin/dev` uses Foreman to run the server and separate JavaScript and CSS watch processes from `Procfile.dev`; missing the `yarn` command meant part of that asset pipeline was not running. The account reflects this project's setup and does not establish a general Rails requirement.

### Source excerpt

So I started fiddling about with a new Rails project and after finding a likely starting point, I immediately ended up with this: Webpacker can't find application.js in I'm old school Rails and I find the whole asset compilation situation, honestly, perplexing. The solution turned out to be: bundle exec rails webpacker:install after the normal: git clone foo bundle install bundle exec rake db:migrate I have no idea why the bundler install doesn't handle executing webpacker:install but cie la vie. The more things change, the more they stay the same ... Update: I kept at this and kept finding that I didn't have webpacker or some other portion of the rails stack running. I finally traced this down to things having changed. Traditionally I've always run rails as: bundle exec rails s -pXYZ And the new approach is to run: bin/dev which in turn contains: #!/usr/bin/env bash if ! command -v foreman &> /dev/null then echo "Installing foreman..." gem install foreman fi foreman start -f Procfile.dev "$@" and the Procfile.dev file contains: web: bin/rails server -p 3000 js: yarn build --watch css: yarn build:css --watch I was literally missing the yarn command so part of the overall asset pipeline just wasn't running. Old habits die hard.

## GitHub Actions: Setup-node now supports dependency caching

DevFeed: [GitHub Actions: Setup-node now supports dependency caching](<https://devfeed.tech/articles/github-actions-setup-node-now-supports-dependency-caching-74410.md>)

Original publisher: [Read original article](<https://github.blog/changelog/2021-07-02-github-actions-setup-node-now-supports-dependency-caching>)

Author: phanatic

Published: 2021-07-02T20:39:07Z

Content type: release

Language: en

Sources: [GitHub Changelog](<https://devfeed.tech/sources/github-changelog.md>)

Topics: [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [npm](<https://devfeed.tech/topics/npm.md>), [Yarn](<https://devfeed.tech/topics/yarn.md>)

Tags: [caching](<https://devfeed.tech/tags/caching.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [npm](<https://devfeed.tech/tags/npm.md>), [yarn](<https://devfeed.tech/tags/yarn.md>)

### AI overview

GitHub Actions' `actions/setup-node@v2` can cache dependencies to speed up Node.js workflows. The excerpt says caching supports npm and Yarn and shows enabling npm caching with `cache: npm` alongside a Node.js version setting.

### Source excerpt

You can now run Node.js projects faster on GitHub Actions by enabling dependency caching on the setup-node action. setup-node supports caching from both npm and yarn package managers. - uses:...

## GitHub Actions - macOS virtual environment updates

DevFeed: [GitHub Actions - macOS virtual environment updates](<https://devfeed.tech/articles/github-actions-macos-virtual-environment-updates-74826.md>)

Original publisher: [Read original article](<https://github.blog/changelog/2019-10-17-github-actions-macos-virtual-environment-updates-2>)

Author: Kayla Ngan

Published: 2019-10-17T22:11:12Z

Content type: release

Language: en

Sources: [GitHub Changelog](<https://devfeed.tech/sources/github-changelog.md>)

Topics: [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>)

Tags: [actions](<https://devfeed.tech/tags/actions.md>), [added](<https://devfeed.tech/tags/added.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [environment](<https://devfeed.tech/tags/environment.md>), [fastlane](<https://devfeed.tech/tags/fastlane.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [go](<https://devfeed.tech/tags/go.md>), [highlights](<https://devfeed.tech/tags/highlights.md>), [ios](<https://devfeed.tech/tags/ios.md>), [lldb](<https://devfeed.tech/tags/lldb.md>), [mac](<https://devfeed.tech/tags/mac.md>), [macos](<https://devfeed.tech/tags/macos.md>), [nvm](<https://devfeed.tech/tags/nvm.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [updates](<https://devfeed.tech/tags/updates.md>), [vs](<https://devfeed.tech/tags/vs.md>), [xcode](<https://devfeed.tech/tags/xcode.md>), [yarn](<https://devfeed.tech/tags/yarn.md>)

### AI overview

GitHub Actions' macOS 10.14 virtual environment update moves macOS 10.14.6 from build 18G95 to 18G103 and updates NVM, Go, CocoaPods, Yarn, fastlane, and Visual Studio for Mac. It adds Xcode 11.1 and iOS 13.1 SDKs, while downgrading lldb from 3.1.4508709 to 2.3.3614996.

### Source excerpt

We've fully deployed updates to the GitHub Actions macOS 10.14 virtual environment. Highlights include: Upgraded macOS 10.14.6 (18G95) to 10.14.6 (18G103) Upgraded NVM 12.11.0 to 12.11.1 Upgraded Go 1.13 to...

## GitHub Enterprise Server 2.18

DevFeed: [GitHub Enterprise Server 2.18](<https://devfeed.tech/articles/github-enterprise-server-2-18-74861.md>)

Original publisher: [Read original article](<https://github.blog/changelog/2019-08-20-github-enterprise-server-2-18>)

Author: Jarryd McCree

Published: 2019-08-20T20:04:27Z

Content type: release

Language: en

Sources: [GitHub Changelog](<https://devfeed.tech/sources/github-changelog.md>)

Topics: [GitHub](<https://devfeed.tech/topics/github.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [dependency](<https://devfeed.tech/tags/dependency.md>), [dependency-graph](<https://devfeed.tech/tags/dependency-graph.md>), [enterprise](<https://devfeed.tech/tags/enterprise.md>), [github](<https://devfeed.tech/tags/github.md>), [github-enterprise-server](<https://devfeed.tech/tags/github-enterprise-server.md>), [graph](<https://devfeed.tech/tags/graph.md>), [issue](<https://devfeed.tech/tags/issue.md>), [latest](<https://devfeed.tech/tags/latest.md>), [release](<https://devfeed.tech/tags/release.md>), [repository](<https://devfeed.tech/tags/repository.md>), [repository-templates](<https://devfeed.tech/tags/repository-templates.md>), [templates](<https://devfeed.tech/tags/templates.md>), [yarn](<https://devfeed.tech/tags/yarn.md>)

### AI overview

GitHub Enterprise Server 2.18.0 is available for download. The release adds repository templates, issue transfer, and yarn.lock support for the dependency graph. The excerpt does not provide further details about these features.

### Source excerpt

The 2.18.0 release of GitHub Enterprise Server is now available for download. The latest release includes repository templates, issue transfer, yarn.lock support for the dependency graph, and more. See the...

## Configuring ESLint on a TypeScript project

DevFeed: [Configuring ESLint on a TypeScript project](<https://devfeed.tech/articles/configuring-eslint-on-a-typescript-project-52576.md>)

Original publisher: [Read original article](<http://www.jackfranklin.co.uk/blog/typescript-eslint/>)

Published: 2019-01-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jack Franklin](<https://devfeed.tech/sources/jack-franklin.md>)

Topics: [ESLint](<https://devfeed.tech/topics/eslint.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [software-development](<https://devfeed.tech/topics/software-development.md>)

Tags: [2019](<https://devfeed.tech/tags/2019.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [editor](<https://devfeed.tech/tags/editor.md>), [eslint](<https://devfeed.tech/tags/eslint.md>), [github](<https://devfeed.tech/tags/github.md>), [install](<https://devfeed.tech/tags/install.md>), [js](<https://devfeed.tech/tags/js.md>), [json](<https://devfeed.tech/tags/json.md>), [lint](<https://devfeed.tech/tags/lint.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [project](<https://devfeed.tech/tags/project.md>), [recommended](<https://devfeed.tech/tags/recommended.md>), [roadmap](<https://devfeed.tech/tags/roadmap.md>), [rules](<https://devfeed.tech/tags/rules.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [yarn](<https://devfeed.tech/tags/yarn.md>)

### AI overview

To lint TypeScript with ESLint, install `eslint`, `@typescript-eslint/parser` to parse TypeScript syntax, and `@typescript-eslint/eslint-plugin` to enable TypeScript rules. Configure `.eslintrc.js` with the parser and plugin, then extend `plugin:@typescript-eslint/recommended` to turn on the plugin's recommended rules. The author notes that other ESLint configurations, such as Prettier integration, can also be used. In VSCode, add `typescript` and `typescriptreact` to `eslint.validate` alongside the JavaScript file types, since the ESLint extension does not validate TypeScript files by default.

### Source excerpt

Whenever I've used TypeScript in the past, I've set up TSLint as my linting tool of choice. However, I've always wished I could use ESLint instead, for a few reasons: I am more familiar with ESLint, and I know its rules better and have my preferred set of plugins. All the JS projects I work on use ESLint, so having all my projects use the same linter is beneficial. I already have an ESLint plugin in my editor, so I don't have to configure the TSLint plugin in addition. I was therefore thrilled to read a post on the ESLint blog about the future of TypeScript and ESLint, with the TypeScript 2019 roadmap mentioning them transitioning to ESLint and contributing to the project. I had to set up a new frontend project this week and I decided to use TypeScript and try ESLint for the first time. I thought it would be useful to document the process to help others get started! Installing dependencies First up, we're going to need to install some packages. We'll install eslint itself, but also two plugins we need to allow ESLint to lint TypeScript: a parser (so ESLint can understand TypeScript's syntax) and the plugin (to enable linting on TS files): yarn add --dev eslint yarn add --dev @typescript-eslint/eslint-plugin yarn add --dev @typescript-eslint/parser Configuring ESLint That gives us enough to set up ESLint. Let's create a .eslintrc.js file and configure the parser and the plugin: I much prefer using .eslintrc.js over a JSON file, primarily because it lets you leave comments in your configuration! module.exports = { parser: '@typescript-eslint/parser', plugins: ['@typescript-eslint'], } With that ESLint is all set up to run on TS files, but we haven't enabled any rules! You can find all the rules and documentation on GitHub, but I decided to enable the recommended set of rules that the plugin provides, by using the extends configuration key: module.exports = { parser: '@typescript-eslint/parser', plugins: ['@typescript-eslint'], extends: ['plugin:@typescript-eslint/reco