Я заметил, что много повторений происходит, когда я расширяю свою базу кода, когда дело доходит до создания интерфейсов TypeScript в моем проекте.
Смотрите это:
interface IErrorResponse {
code: number
message: string
}
// Feature 1
type FEATURE_1_KEYS =
| 'fetchingActivities'
| 'fetchingActivityTypes'
interface IFeature1ErrorAction
extends IErrorResponse {
key: FEATURE_1_KEYS
}
// Feature 2
type FEATURE_2_KEYS =
| 'fetchingSomethingElse'
| 'updatingSomething'
interface IFeature2ErrorAction
extends IErrorResponse {
key: FEATURE_2_KEYS
}
То есть, когда я использую последние ErrorAction
с (интерфейсы), я бы использовал IFeature1ErrorAction
и IFeature2ErrorAction
. Мой проект имеет много функций.
Есть ли способ создать IErrorAction
, который построен из моего IErrorResponse
, где я просто передаю эти FEATURE_KEYS
для ключа?
Тогда я мог бы использовать это так IErrorAction<FEATURE_1_KEYS>
.
Это сэкономило бы много повторений в моем процессе разработки, и я уверен, что это можно сделать, я просто не уверен, как.
По существу, результат этого интерфейса для IErrorAction<FEATURE_1_KEYS>
будет отображать следующий интерфейс:
interface IErrorAction = { // How do I get that `TEMPLATED_KEYS` in there?
code: number,
key: TEMPLATED_KEYS,
message: string
}