千巷貓影
2022-10-21 14:33:26
export declare abstract class AbstractBootstrapConsole<A extends INestApplicationContext, O extends CommonBootstrapConsoleOptions = CommonBootstrapConsoleOptions> { protected service: ConsoleService; protected container: A; protected readonly options: O; constructor(options: O); protected useDecorators(): this; init(): Promise<A>; getService(): ConsoleService; getOptions(): O; boot(argv?: string[]): Promise<CommandResponse>; abstract create(): Promise<A>;}我試圖理解這個函數類聲明。它是 nestjs-console 模塊的一部分。我無法理解聲明。做什么class A<B extends C, D extends E = F>意思是?將來,我將如何自己查找?我在 Typescript 的文檔中找不到這個。更新:得到了一些非常明確的答案!謝謝你們!
2 回答

大話西游666
TA貢獻1817條經驗 獲得超14個贊
這些被稱為泛型。
class A<B extends C, D extends E = F>
您正在定義一個名為 A 的類,它接受兩個泛型參數,稱為 B 和 D。B 必須擴展接口 C,D 必須擴展接口 E。如果沒有提供泛型參數 D,則默認為接口 F。
interface C {
name: string;
}
interface E {
something: number;
}
interface F extends E {
somethingElse: boolean;
}
class A<B extends C, D extends E = F> {
constructor(b: B, d: D) {
}
}
interface D extends C {
surname: string;
}
const a: A<D> = {}; // Optional generic parameter default to F, constuctor parameter d must be of type F.
https://www.typescriptlang.org/docs/handbook/generics.html
添加回答
舉報
0/150
提交
取消