В TypeScript, что такое type '{}'
и как оно относится к другим встроенным типам?
Например, последняя строка в следующем примере дает Type '{}' is not assignable to type 'number'
, и я не совсем понимаю, что в этом контексте type {}
или как это происходит:
// A function taking no arguments and returning T
type NoArgsFn<T> = () => T;
// An instance of NoArgsFn<number>
function get_the_answer(): number {
return 42;
}
// Call the supplied function and return its value
function call<T, Fn extends NoArgsFn<T>>(fn: Fn): T {
return fn();
}
// Expect this to be equivalent to `let the_answer: number = 42', but
// instead get "Type '{}' is not assignable to type 'number'"
let the_answer: number = call(get_the_answer);