ASCII Triangles
C, 58 bytes
i;f(n){for(i=2*n;~i--;printf(i<n?"-":"|%*c\n",2*n-i,92));}
--
Thanks to @Steadybox who's comments on this answer helped me shave a few bytes in my above solution
Javascript (ES6), 97 85 81 75 74 bytes
n=>(g=(n,s)=>n?g(--n,`|${" ".repeat(n)}\\
`+s):s)(n,"")+"-".repeat(n&&n+1)
Turns out I wasn't using nearly enough recursion
f=n=>(g=(n,s)=>n?g(--n,`|${" ".repeat(n)}\\
`+s):s)(n,"")+"-".repeat(n&&n+1)
console.log(f(0))
console.log(f(1))
console.log(f(2))
console.log(f(3))
console.log(f(4))
05AB1E, 16 15 16 bytes
Saved a byte thanks to Adnan
FðN×…|ÿ\}Dg'-×»?
Try it online!
Explanation
F } # for N in range [0 ... input-1]
ðN× # push <space> repeated N times
…|ÿ\ # to the middle of the string "|\"
Dg # get length of last string pushed
'-× # repeat "-" that many times
» # join strings by newline
? # print without newline