I am trying to do something I am not sure is possible in TypeScript: inferring the argument types / return types from a function.
For example
function foo(a: string, b: number) {
return `${a}, ${b}`;
}
type typeA = <insert magic here> foo; // Somehow, typeA should be string;
type typeB = <insert magic here> foo; // Somehow, typeB should be number;
My use case is to try to create a config object that contains constructors and parameters:
For example:
interface IConfigObject<T> {
// Need a way to compute type U based off of T.
TypeConstructor: new(a: U): T;
constructorOptions: U;
}
// In an ideal world, could infer all of this from TypeConstructor
class fizz {
constructor(a: number) {}
}
const configObj : IConfigObj = {
TypeConstructor: fizz;
constructorOptions: 13; // This should be fine
}
const configObj2 : IConfigObj = {
TypeConstructor: fizz;
constructorOptions: 'buzz'; // Should be a type error, since fizz takes in a number
}
Can anyone help me out? Thanks!
question from:
https://stackoverflow.com/questions/43481518/get-argument-types-for-function-class-constructor 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…