Considering that your variable could be string or number or any type - for full numbers (non-floats) in Angular/Typescript you can use:
var isFullNumber: boolean =
Number.isInteger(Number(yourVariable)) && yourVariable !== null;
Edited as pointed out by @tarrbal - we CANNOT use just:
Number.isInteger(yourVariable);
To prove check out these 3 tests:
let testVariables = [0, 1, "0", "1", "A", {}, -3, 0.1, NaN, null, undefined];
let isFullNumber: boolean;
let ix: number = 1;
testVariables.forEach(v => {
isFullNumber = Number.isInteger(v); // <---
console.log(ix++, ': ', v, isFullNumber);
})
console.log('--------------');
ix = 1;
testVariables.forEach(v => {
isFullNumber = Number.isInteger(Number(v)); // <---
console.log(ix++, ': ', v, isFullNumber);
})
console.log('--------------');
ix = 1;
testVariables.forEach(v => {
isFullNumber = Number.isInteger(Number(v)) && v !== null; // <---
console.log(ix++, ': ', v, isFullNumber);
})
and these 3 results:
1 : 0 true
2 : 1 true
3 : 0 false <- would expect true
4 : 1 false <- would expect true
5 : A false
6 : {} false
7 : -3 true
8 : 0.1 false
9 : NaN false
10 : null false
11 : undefined false
----------------------------
1 : 0 true
2 : 1 true
3 : 0 true
4 : 1 true
5 : A false
6 : {} false
7 : -3 true
8 : 0.1 false
9 : NaN false
10 : null true <- would expect false
11 : undefined false
----------------------------
1 : 0 true
2 : 1 true
3 : 0 true
4 : 1 true
5 : A false
6 : {} false
7 : -3 true
8 : 0.1 false
9 : NaN false
10 : null false
11 : undefined false