关于打字稿接口定义
About typescript interface definition
我有一个函数 A,它将 return 函数 B。函数 B 的参数是对象 C。C 有一个 属性 称为 D,其类型为 T。
当我得到 B 时决定 T,这意味着我可以在调用 A 或其他一些方式时设置 T。
那么如何在打字稿中定义它呢?非常感谢。
我已经试过了,效果不错。但这不是我想要的:
interface C<T> {
d: T;
e: number;
}
interface B<T> {
(param: C<T>): void;
}
interface A<T> {
(): B<T>;
}
const a: A<number> = () => ({d, e}) => {
console.log(d, e)
};
我想要的东西可能是这样的:
const a: A = () => ({d, e}) => {
console.log(d, e)
};
const b1 = a<number>();
const b2 = a<string>();
我不知道这个。
你走在正确的道路上,我发现类型比接口更清晰:
interface C<T> {
d: T;
e: number;
}
type B<T> = (params: C<T>) => void
type A = <T>() => B<T>
// or inlined : type A = <T>() => (params: C<T>) => void
const a: A = () => ({d, e}) => {
console.log(d, e)
};
const withNumber = a<number>();
const withString = a<string>();
我有一个函数 A,它将 return 函数 B。函数 B 的参数是对象 C。C 有一个 属性 称为 D,其类型为 T。
当我得到 B 时决定 T,这意味着我可以在调用 A 或其他一些方式时设置 T。
那么如何在打字稿中定义它呢?非常感谢。
我已经试过了,效果不错。但这不是我想要的:
interface C<T> {
d: T;
e: number;
}
interface B<T> {
(param: C<T>): void;
}
interface A<T> {
(): B<T>;
}
const a: A<number> = () => ({d, e}) => {
console.log(d, e)
};
我想要的东西可能是这样的:
const a: A = () => ({d, e}) => {
console.log(d, e)
};
const b1 = a<number>();
const b2 = a<string>();
我不知道这个。
你走在正确的道路上,我发现类型比接口更清晰:
interface C<T> {
d: T;
e: number;
}
type B<T> = (params: C<T>) => void
type A = <T>() => B<T>
// or inlined : type A = <T>() => (params: C<T>) => void
const a: A = () => ({d, e}) => {
console.log(d, e)
};
const withNumber = a<number>();
const withString = a<string>();