TypeScript parameter type inference failure TypeScript parameter type inference failure typescript typescript