Functions must be less than 200 lines
ID: typescript-code-style/max-function-lines
Language: TypeScript
Severity: Warning
Category: Code Style
Description
This rule ensures that a function is not too long. A function should be less than 200 lines, or it will be hard to understand.
Non-Compliant Code Examples
function dummyFunction() {
var x = 0;
var y = 1;
var z = 2;
var arr = [1, 2, 3, 4, 5];
var obj = { name: "John", age: 30 };
// Start of dummy code
for (var i = 0; i < 10; i++) {
x += i;
y *= i;
z -= i;
if (x > y && y < z) {
x--;
z++;
} else {
y++;
}
}
if (x > 100) {
arr.push(6);
} else if (x < 0) {
arr.pop();
} else {
arr.splice(2, 1, 7);
}
for (var j = 0; j < arr.length; j++) {
if (arr[j] % 2 === 0) {
arr[j] *= 2;
} else {
arr[j] += 2;
}
}
var sum = 0;
arr.forEach(function(num) {
sum += num;
});
if (sum > 20) {
obj.name = "Jane";
obj.age = 25;
} else {
obj.name = "Alice";
obj.age = 40;
}
// End of dummy code
// More dummy code...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// Final dummy code
var result = "Result: ";
if (obj.age < 30) {
result += "Young ";
} else if (obj.age > 30) {
result += "Old ";
} else {
result += "Middle-aged ";
}
result += obj.name;
return result;
}
() => {
var x = 0;
var y = 1;
var z = 2;
var arr = [1, 2, 3, 4, 5];
var obj = { name: "John", age: 30 };
// Start of dummy code
for (var i = 0; i < 10; i++) {
x += i;
y *= i;
z -= i;
if (x > y && y < z) {
x--;
z++;
} else {
y++;
}
}
if (x > 100) {
arr.push(6);
} else if (x < 0) {
arr.pop();
} else {
arr.splice(2, 1, 7);
}
for (var j = 0; j < arr.length; j++) {
if (arr[j] % 2 === 0) {
arr[j] *= 2;
} else {
arr[j] += 2;
}
}
var sum = 0;
arr.forEach(function(num) {
sum += num;
});
if (sum > 20) {
obj.name = "Jane";
obj.age = 25;
} else {
obj.name = "Alice";
obj.age = 40;
}
// End of dummy code
// More dummy code...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// Final dummy code
var result = "Result: ";
if (obj.age < 30) {
result += "Young ";
} else if (obj.age > 30) {
result += "Old ";
} else {
result += "Middle-aged ";
}
result += obj.name;
return result;
}
const dummyFunction = function() {
var x = 0;
var y = 1;
var z = 2;
var arr = [1, 2, 3, 4, 5];
var obj = { name: "John", age: 30 };
// Start of dummy code
for (var i = 0; i < 10; i++) {
x += i;
y *= i;
z -= i;
if (x > y && y < z) {
x--;
z++;
} else {
y++;
}
}
if (x > 100) {
arr.push(6);
} else if (x < 0) {
arr.pop();
} else {
arr.splice(2, 1, 7);
}
for (var j = 0; j < arr.length; j++) {
if (arr[j] % 2 === 0) {
arr[j] *= 2;
} else {
arr[j] += 2;
}
}
var sum = 0;
arr.forEach(function(num) {
sum += num;
});
if (sum > 20) {
obj.name = "Jane";
obj.age = 25;
} else {
obj.name = "Alice";
obj.age = 40;
}
// End of dummy code
// More dummy code...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// Final dummy code
var result = "Result: ";
if (obj.age < 30) {
result += "Young ";
} else if (obj.age > 30) {
result += "Old ";
} else {
result += "Middle-aged ";
}
result += obj.name;
return result;
}
class A {
dummyFunction() {
var x = 0;
var y = 1;
var z = 2;
var arr = [1, 2, 3, 4, 5];
var obj = { name: "John", age: 30 };
// Start of dummy code
for (var i = 0; i < 10; i++) {
x += i;
y *= i;
z -= i;
if (x > y && y < z) {
x--;
z++;
} else {
y++;
}
}
if (x > 100) {
arr.push(6);
} else if (x < 0) {
arr.pop();
} else {
arr.splice(2, 1, 7);
}
for (var j = 0; j < arr.length; j++) {
if (arr[j] % 2 === 0) {
arr[j] *= 2;
} else {
arr[j] += 2;
}
}
var sum = 0;
arr.forEach(function(num) {
sum += num;
});
if (sum > 20) {
obj.name = "Jane";
obj.age = 25;
} else {
obj.name = "Alice";
obj.age = 40;
}
// End of dummy code
// More dummy code...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// Final dummy code
var result = "Result: ";
if (obj.age < 30) {
result += "Young ";
} else if (obj.age > 30) {
result += "Old ";
} else {
result += "Middle-aged ";
}
result += obj.name;
return result;
}
}
Compliant Code Examples
function myTest() {
// less than 200 lines
}
() => {
// less than 200 lines
}
class A {
foo() {
// less than 200 lines
}
}