microsoft / TypeScript
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 9% duplication:
    • 201,490 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 19,540 duplicated lines
  • 7,601 duplicates
system9% (19,540 lines)
Duplication per Extension
ts9% (19,489 lines)
js3% (51 lines)
Duplication per Component (primary)
src9% (19,371 lines)
scripts4% (143 lines)
ROOT5% (26 lines)
lib0% (0 lines)
Longest Duplicates
The list of 50 longest duplicates.
See data for all 7,601 duplicates...
Size#FoldersFilesLinesCode
430 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
2780:3284 (11%)
3932:4436 (11%)
view
270 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
547:879 (7%)
1313:1645 (7%)
view
264 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
1702:2018 (7%)
2426:2742 (7%)
view
263 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
2024:2339 (7%)
2426:2741 (7%)
view
263 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
1702:2017 (7%)
2024:2339 (7%)
view
64 x 2 src/harness
src/harness
1303:1366 (4%)
1515:1578 (4%)
view
60 x 2 src/testRunner/unittests/tscWatch
src/testRunner/unittests/tscWatch
202:272 (16%)
321:391 (16%)
view
49 x 2 src/compiler/transformers
src/compiler/transformers
619:690 (8%)
1093:1164 (5%)
view
47 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
520:571 (3%)
712:763 (3%)
view
45 x 2 src/harness
src/harness
1432:1476 (3%)
1583:1627 (3%)
view
44 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
331:382 (2%)
1231:1282 (2%)
view
44 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
471:522 (2%)
1393:1444 (2%)
view
44 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
277:328 (2%)
1177:1228 (2%)
view
41 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
525:574 (2%)
1447:1496 (2%)
view
36 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
327:363 (4%)
485:521 (4%)
view
36 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
943:985 (1%)
1682:1724 (1%)
view
35 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
68:105 (7%)
308:345 (7%)
view
35 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
769:810 (1%)
1584:1625 (1%)
view
34 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
369:405 (4%)
531:567 (4%)
view
33 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
1498:1531 (<1%)
4231:4264 (<1%)
view
33 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
732:765 (<1%)
3079:3112 (<1%)
view
33 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
1498:1531 (<1%)
3079:3112 (<1%)
view
33 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
732:765 (<1%)
4231:4264 (<1%)
view
32 x 2 src/testRunner/unittests
src/testRunner/unittests
4:36 (12%)
3:35 (13%)
view
31 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
4254:4284 (<1%)
4366:4396 (<1%)
view
31 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
3102:3132 (<1%)
3214:3244 (<1%)
view
31 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
3102:3132 (<1%)
4366:4396 (<1%)
view
31 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
3214:3244 (<1%)
4254:4284 (<1%)
view
30 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
3691:3720 (<1%)
3883:3912 (<1%)
view
29 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
390:425 (1%)
1301:1336 (1%)
view
29 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
1868:1897 (<1%)
4227:4256 (<1%)
view
29 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
2592:2621 (<1%)
3075:3104 (<1%)
view
29 x 2 src/testRunner/unittests
src/testRunner/unittests
1024:1054 (2%)
1062:1092 (2%)
view
29 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
239:274 (1%)
1139:1174 (1%)
view
29 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
2190:2219 (<1%)
3075:3104 (<1%)
view
29 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
1868:1897 (<1%)
3075:3104 (<1%)
view
29 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
2592:2621 (<1%)
4227:4256 (<1%)
view
29 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
433:468 (1%)
1355:1390 (1%)
view
29 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
196:231 (1%)
1085:1120 (1%)
view
29 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
2190:2219 (<1%)
4227:4256 (<1%)
view
28 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
120:152 (1%)
998:1030 (1%)
view
28 x 2 src/testRunner/unittests
src/testRunner/unittests
543:570 (2%)
585:612 (2%)
view
28 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
156:188 (1%)
1034:1066 (1%)
view
27 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
1275:1305 (1%)
2015:2045 (1%)
view
27 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
113:140 (11%)
147:174 (11%)
view
27 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
1059:1089 (1%)
1797:1827 (1%)
view
27 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
1167:1197 (1%)
1906:1936 (1%)
view
27 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
166:193 (11%)
140:167 (17%)
view
27 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
1221:1251 (1%)
1961:1991 (1%)
view
27 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
293:320 (2%)
320:347 (2%)
view
Duplicated Units
The list of top 28 duplicated units.
See data for all 28 unit duplicates...
Size#FoldersFilesLinesCode
16 x 2 src/compiler/transformers
src/compiler/transformers
675:691 
1149:1165 
view
15 x 2 src/compiler/transformers
src/compiler/transformers
2122:2137 
491:506 
view
15 x 2 src/testRunner/unittests/evaluation
src/testRunner/unittests/evaluation
103:118 
126:141 
view
11 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
69:83 
94:107 
view
10 x 2 src/compiler/transformers
src/compiler/transformers
641:651 
1115:1125 
view
10 x 2 src/compiler/transformers
src/compiler/transformers
653:663 
1127:1137 
view
10 x 2 src/compiler/transformers
src/compiler/transformers
1368:1378 
1409:1419 
view
9 x 2 scripts/build
src/harness
7:16 
8:17 
view
15 x 2 src/testRunner/unittests/evaluation
src/testRunner/unittests/evaluation
149:164 
171:186 
view
8 x 2 src/compiler/transformers
src/compiler/transformers/module
633:641 
636:644 
view
8 x 2 src/compiler/transformers
src/compiler/transformers
665:673 
1139:1147 
view
32 x 2 src/testRunner/unittests/tsbuild
src/testRunner/unittests/tsbuildWatch
84:117 
80:113 
view
7 x 2 src/compiler
src/compiler
1754:1761 
1763:1770 
view
7 x 2 src/compiler
src/compiler
1990:1997 
3369:3376 
view
7 x 2 src/compiler/transformers
src/compiler/transformers
693:700 
1167:1174 
view
7 x 2 src/compiler/transformers/module
src/compiler/transformers/module
1748:1757 
1659:1666 
view
7 x 2 src/harness
src/harness
154:161 
157:164 
view
7 x 2 src/harness
src/harness
1306:1313 
1315:1322 
view
7 x 3 src/testRunner/unittests
src/testRunner/unittests/tsbuild
src/testRunner/unittests/tsbuildWatch
46:53 
87:94 
83:90 
view
7 x 3 src/testRunner/unittests
src/testRunner/unittests/tsbuild
src/testRunner/unittests/tsbuildWatch
62:69 
103:110 
99:106 
view
7 x 2 src/testRunner/unittests/evaluation
src/testRunner/unittests/evaluation
7:14 
33:40 
view
7 x 2 src/testRunner/unittests/services/extract
src/testRunner/unittests/services/extract
9:16 
67:74 
view
6 x 2 src/compiler
src/compiler
3408:3414 
3498:3504 
view
6 x 2 src/compiler
src/compiler
7751:7757 
8004:8010 
view
6 x 2 src/compiler/transformers
src/compiler/transformers
1641:1647 
1951:1957 
view
6 x 2 src/compiler/transformers
src/compiler/transformers
182:188 
197:203 
view
6 x 2 src/compiler/transformers
src/compiler/transformers
632:639 
1107:1113 
view
6 x 2 src/testRunner/unittests/tsserver
src/testRunner/unittests/tsserver
205:211 
221:227 
view