簡體   English   中英

關於打字稿接口定義

[英]About typescript interface definition

我有一個函數 A,它將返回函數 B。函數 B 的參數是對象 C。C 有一個名為 D 的屬性,其類型為 T。

T 是在我得到 B 時決定的,這意味着我可以在我調用 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>();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM