【发布时间】:2022-01-25 02:41:11
【问题描述】:
函数的第二个参数的类型取决于第一个参数的字符串值。我想得到这样的东西:
async action (name: 'create', args: { table: string, object: StorageObject }): Promise<StorageObject>;
async action (name: 'createOrUpdate', args: { table: string, query: StorageQuery, object: StorageObject }): Promise<Array<StorageObject>>;
async action (name: 'read', args: { table: string, query: StorageQuery }): Promise<Array<StorageObject>>;
async action (name: 'update', args: { table: string, query: StorageQuery, object: StorageObject }): Promise<Array<StorageObject>>;
async action (name: 'delete', args: { table: string, query: StorageQuery }): Promise<Array<StorageObject>> {
...
}
目前,我有:TS2394: This overload signature is not compatible with its implementation signature.
【问题讨论】:
-
使用重载时需要 n + 1 个签名 - n 个重载加上 1 个实现签名:typescriptlang.org/docs/handbook/2/…
标签: typescript types