First day with typescript and i got ~logic error?
server.ts
interface StopAppCallback {
(err: Error | null): void
}
interface StartAppCallback {
(err: Error | null, result?: Function): void
}
export default (startCb: StartAppCallback): void => {
const stopApp = (stopCb: StopAppCallback): void => {
return stopCb(null)
}
return startCb(null, stopApp)
}
boot.ts
import server from './src/server'
server((err, stopApp) => { //<-- no error
if (err) {
throw err
}
if (typeof stopApp !== 'function') {
throw new Error('required typeof function')
}
stopApp((error) => { //<-- tsc error
if (error) {
throw error
}
})
})
tsc error: parameter 'error' implicitly has an 'any' type
I don't get it, interfaces are defined and set in same way. So whats the deal? Turning off noImplicitAny and strict in settings or adding :any is dum.
What i don't understand in tsc logic? Or i am defining something wrong?