For reasons that I cannot understand, Steven declined my suggestion of using xparse. However, I deem that an answer along these lines could be of some interest, so I am supplying it myself.
I’ll espouse Steven’s approach of making no assumption whatsoever on how \subsection is implemented:
% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly
% declare the paper format.
\usepackage[T1]{fontenc} % Not always necessary, but recommended.
% End of standard header. What follows pertains to the problem at hand.
\usepackage{parskip}
\usepackage{xparse}
\let \originalSubsection \subsection
\RenewDocumentCommand \subsection { s o m } {%
\vspace{-\parskip}%
\IfBooleanTF{#1}{%
\originalSubsection*{#3}%
}{%
\IfValueTF{#2}{%
\originalSubsection[#2]{#3}%
}{%
\originalSubsection{#3}%
}%
}%
\vspace{-\parskip}%
}
\begin{document}
\tableofcontents
\section{With Fix}
Blah blah.
\subsection*{A starred subsection}
This subsection has no number, and is not included in the ToC\@.
\subsection{Normal subsection}
This subsection is normal in all respects: it is numbered, and appears in the
ToC\@ with the same title as above.
\subsection[Short title]{A somewhat longer title}
Numbered subsection, but with a different title in the ToC\@.
\subsection*[Ignored argument]{This is possible too\ldots}
\ldots and it is a well-known issue; it doesn't hurt, anyway!
\end{document}
\usepackage{parskip}; 2) change all occurrences ofsectiontosubsection; and 3) change the prelude and postlude definitions to something with negative\vspaceas for example,\newcommand\subsectionprelude{\vspace{-1em}}– Steven B. Segletes Aug 11 '16 at 11:34titlesec– egreg Aug 12 '16 at 07:33titlesec). – dabadaba Aug 12 '16 at 09:54