предположим, что у нас есть интерфейс IFieldConfig
export interface IFieldInputConfig {
type: 'string' | 'password';
// eslint-disable-next-line @typescript-eslint/no-explicit-any
default?: any;
}
export interface IFieldConfig extends IExtractConfig {
id: string;
form?: IFieldInputConfig;
}
и есть объект, который использует этот интерфейс
export const fieldCompany: IFieldConfig = {
id: 'company',
form: {
type: 'string',
default: 'Apple',
},
}
, когда я хочу использовать его, TypeScript считает, что fieldCompany.form.default
может быть неопределенным, даже если очень ясно, что оно определено. Я понимаю, что после объявления каким-то образом form
prop можно было бы удалить, чтобы TypeScript не ошибался.
Как я могу сказать, что TypeScript запечатан / не будет изменен?
Очевидно, что я мог бы сделать больше специфических c интерфейсов, но я не хочу иметь один для каждой комбинации дополнительных опор. Я уверен, что есть более простой и простой способ