1. A method comprising: receiving by a processor of a software development computer, program source code comprising an initial declaration for a static type of a component in a first file; receiving program source code comprising at least one additional declaration comprising a static type extension for the static type of the component in a second file, where the at least one additional declaration extends capabilities of the component at runtime; merging the initial declaration for the static type of the component in the first file with the at least one additional declaration for the static type of the component in the second file to create a merged static type declaration; using the merged static type declaration for static type checking during compilation.