The Typescript arithmetic operators take numerical values as their left & right operands, perform the arithmetic operation, and return a numerical value. The Typescript supports all the arithmetic operators like addition (+), subtraction (-), multiplication (*), division (/), etc. Note that all the numbers in Typescript are represented as IEEE 754 floating-point numbers and use floating-point arithmetic.
Table of Contents
Arithmetic Operators
+ (Addition)
The addition operator (+
) is a binary operator, which calculates the sum of two numeric operands.
1 2 3 4 5 6 | let a = 12 let b = 2 let c = a+b; console.log(c) //14 |
If one of the operands is a string, then the +
operator does a string concatenation
1 2 3 4 5 6 | let a = "Hello" let b = 2 let c = a+b; console.log(c) //Hello2 |
1 2 3 4 5 6 7 | let a = "12" let b = 2 let c = a+b; //string concatenation as the b is string console.log(c) //122 |
The booleans are implemented as numerical values with a single binary digit (i.e., 0 & 1). 1 is true & 0 is false.
1 2 3 4 5 6 | let a = true //boolean let b = 2 let c = b+a; //Typescript compiler throws a warning here console.log(c) //3 because true is 1 |
1 2 3 4 5 6 7 | let a = false //boolean let b = 2 let c = b+a; //Compiler warning console.log(c) //2 because false is 0 |
1 2 3 4 5 | console.log(true+true+true) //3 because true is 1. //Also a compiler warning |
The Operations involving different types (example string & number) give a compiler error. This is because of Typescript type checking, which is one of the major reasons why we use typescript.
– (Subtraction)
The subtraction operator subtracts the right operand from the left operand. If any of the operands is not a number, then it returns a NaN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | let a = 10 let b = 2 let c = a-b; console.log(c) //8 let d = b-a; console.log(d) //-8 //Boolean //Compiler warning console.log(true-false) //1 true is 1, false is 0 console.log(2-true) //1 |
Converts strings to numbers. Typescript compiler will flag this as an error.
1 2 3 4 5 6 7 | let a = "1" let b = "2" console.log(a-b); //-1 //Compiler warning |
Subtraction, when one (or both) of the operand is not a number, always results in NaN
1 2 3 4 5 | let a = "Hello" let b = 2 console.log(a-b); //NaN |
* (Multiplication)
The multiplication operator (*) multiplies the left operand with the right operand.
1 2 3 4 5 | let a = 5 let b = 2 console.log(a*b); //10 |
Strings are converted to numbers. Typescript compiler will flag this as an error
1 2 3 4 5 6 | let a = "5" let b = "2" console.log(a*b); //10 |
Infinity
1 2 3 4 | console.log(Infinity * 0) // NaN console.log(Infinity * Infinity) // Infinity |
Multiplication with non-numbers results in NaN. The Typescript will throw an error here.
1 2 3 | console.log("Hello" * 10) // NaN //Compiler error |
/ (Division)
The division operator (/
) divides the left operand (dividend) with the right operand (divisor).
Example
1 2 3 4 5 6 | console.log(10 / 2); //5 console.log(11 / 2); //5.5 |
Strings are converted to numbers. Typescript compiler will flag this as an error
1 2 3 4 5 6 | console.log(6 / '3'); //2 console.log('6' / '3'); //2 |
If the string is not a number, then the result is NaN.
1 2 3 4 5 | console.log(6 / 'a'); //NaN console.log(6 / '3a'); //NaN |
Booleans are numbers. True is 1 & false is 0
1 2 3 4 5 | console.log(6 / true); //6 true is 1 console.log(2 / false); //Infinity false is 0 |
Dividing by 0 results in Infinity
1 2 3 4 | console.log(2 / 0); //Infinity |
% (modulus or Reminder)
The remainder operator (%
) returns the remainder leftover of a division operation between the operands. The result always takes the sign of the dividend.
1 2 3 4 5 6 7 8 | console.log(12%5) //2 console.log(-12%5) //-2 console.log(-12%-5) //-2 console.log(12%-5) //2 |
++ (Increment) & — (Decrement)
We use the increment & Decrement operators to increase or decrease the value of the variable by one. Typescript uses the ++
(increment) & --
(decrement) to denote them. We can either prefix or Postfix these operators.
Increment & Decrement Operators in Typescript
+ & – (Unary plus & Unary minus)
The unary plus operator (+
) precedes its operand and converts it into a number. If it fails to convert the operand into a number, then it returns NaN. The unary (-) operator converts the operand into a number and negates it.
Read Unary plus & Unary minus operators in Typescript
** (Exponentiation operator)
The exponentiation operator (**
) returns the result of raising the first operand to the power of the second operand.
1 2 3 4 5 6 7 8 9 10 11 | console.log(3 ** 4); // 81 console.log(10 ** -2); // 0.01 console.log(2 ** 3 ** 2); // 512 console.log((2 ** 3) ** 2); // 64 console.log(2 ** (3 ** 2)); // 512 |
Reference
Read More
- Complete Typescript Tutorial
- Typescript Operators
- Arithmetic Operators
- Unary plus / Unary minus Operators
- Increment/Decrement Operators
- Comparison / Relational Operators
- Equality Operator / Strict Equality Operators
- Ternary Conditional Operators
- Logical Operators
- Bitwise Operators
- Assignment Operators
- Nullish coalescing operator
- Comma Operator in Typescript
- Operator Precedence