我正在尝试做一些我不确定在 TypeScript 中是否可行的事情:从函数推断参数类型/返回类型。
例如:
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;
我的用例是尝试创建一个包含构造函数和参数的配置对象。
例如:
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
}
打字稿现在有ConstructorParameters
内置的,类似于Parameters
内置。确保传递类类型,而不是实例:
ConstructorParameters<typeof SomeClass>
构造函数参数官方文档 https://www.typescriptlang.org/docs/handbook/utility-types.html#constructorparameterstype
参数 官方文档 https://www.typescriptlang.org/docs/handbook/utility-types.html#parameterstype
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)