Skip to main content

Property does not exist on type 'never' in TypeScript

Understanding the error “Property does not exist on type ‘never'”

c This error can be frustrating and confusing, but it is relatively easy to solve once we understand the cause.

Causes of the error “Property does not exist on type ‘never'”

One common cause of the error is when we try to access a property on a null or undefined value. For example, consider the following code:

type Employee = {  salary: number;};let employee: Employee | null = null;function setEmployee() {  employee = { salary: 100 };}setEmployee();// employee.salary is equal to 100 here// but TypeScript doesn't knowif (employee == null) {  console.log('employee is nullish');} else {  // Error: Property 'salary' does not  // exist on type 'never'.ts(2339)  console.log(employee.salary);}

Another cause of the error is declaring an empty array without assigning a type to it.

const obj = {  years: [],};// never[]console.log(obj.years);

Solutions Property does not exist on type ‘never’:

To solve the error, use square brackets instead of dot notation to access the property.

type Employee = {  salary: number;};let employee: Employee | null = null;function setEmployee() {  employee = { salary: 100 };}setEmployee();// employee.salary is equal to 100 here// but TypeScript doesn't knowif (employee == null) {  console.log('employee is nullish');} else {  // Works fine now (Use bracket notation)  console.log(employee['salary']);}

To avoid this error, make sure to type the empty array explicitly.

type Example = {  years: number[];};const obj: Example = {  years: [],};// number[]console.log(obj.years);

Conclusion: Property does not exist on type ‘never’

The error “Property does not exist on type ‘never’” occurs when we try to access a property on a value of type ‘never’ or when TypeScript gets confused when analyzing our code.

To solve the error, we can use square brackets instead of dot notation to access the property or make sure to type empty arrays explicitly. Understanding the causes of this error can help us write better TypeScript code and avoid frustrating mistakes in the future.

Comments

Popular posts from this blog

Cannot find module 'commander' error in Node.js

If you’re seeing the error Cannot find module 'commander' while working with Node.js, it means that the commander module is not installed in your project. This module is a popular command-line interface (CLI) module that helps you build CLIs for your Node.js applications. Installing the Commander Package To fix the error, you’ll need to install the commander package in your project. Here’s how you can do that: Open your terminal in your project’s root directory (where your package.json file is located). Run the following command: npm install commander This will add the commander package to the dependencies of your project. Restarting Your IDE and Development Server If installing the commander package doesn’t solve the error, try restarting your Integrated Development Environment (IDE) and your development server. Sometimes, a simple restart can fix issues like these. [Fixed]: ImportError: cannot import name ‘json’ from ‘itsdangerous...

'ts-node' is not recognized as an internal or external command

If you’re trying to use the ts-node command and are encountering the error “ ts-node is not recognized as an internal or external command, operable program, or batch file ,” there are a few solutions you can try. Solution 1: Use npx The quickest solution is to use the npx command. Simply prefix your ts-node command with npx, like so: npx ts-node myScript.ts You can also check the version of ts-node you have installed with npx: npx ts-node --version Solution 2: Install ts-node Globally or as a Development Dependency Another option is to install ts-node globally or as a development dependency for your project. To install ts-node globally, run the following command: npm install -g ts-node To install ts-node as a development dependency for your project, run this command from the root directory of your project: npm install --save-dev ts-node Installing ts-node locally for your project has the added benefit of allowing you to control and share the versions through your package.json file....

TypeError: got multiple values for argument in Python

When working with functions and classes in Python, you may encounter the “ TypeError: got multiple values for argument ” error. This error occurs when you pass the same argument multiple times in a function call, either by using both a positional and a keyword argument or by passing self as a variable in a class method. In this post, we will explore different ways to solve this error and prevent it from happening in the future. Understanding the error TypeError: got multiple values for argument in Python The “ TypeError: got multiple values for argument ” error occurs when you pass the same argument multiple times in a function call. This can happen in two ways: When passing a positional and a keyword argument for the same variable. def get_employee(name, **kwargs): return {'name': name, **kwargs}result = get_employee('Alice', name='Alice')print(result) In the example above, we pass the name argument as both a positional and a keyword argument, which causes t...