после многих часов испытаний я вас спрашиваю. я хочу определить мой интерфейсный объект
export interface OptionPros {
text: string;
color?: string|undefined;
fontStyle?: string|undefined;
sidePadding?: number|undefined;
}
после того, как я захочу создать тип, который использует только свойство "text", другие являются необязательными.
type OO=Exclude<"color"|"fontStyle"|"sidePadding", OptionPros>
теперь все в порядке, но когда я пытаюсь использовать это определение в опорах моего класса, реагирую
file1.tsx
export interface OptionPros {
text: string;
color?: string|undefined;
fontStyle?: string|undefined;
sidePadding?: number|undefined;
}
type OO=Exclude<"color"|"fontStyle"|"sidePadding", OptionPros>
export interface DProps extends BaseProps {
optionD: OO
}
export default class DDD <DProps> {
static defaultProps = {
optionD: {
text: '',
color: '#FF6384', // Default is #000000
fontStyle: 'Arial', // Default is Arial
sidePadding: 20 // Defualt is 20 (as a percentage)
}
};
render() {<div>AAAA</div>}
}
file2.tsx
//i omit react and other inclusion or extension
import.....
export default class AAAA {
render() {return(<DDD optionD={{text:"hello world"}}>AAAA</DDD >)}
и у меня ошибка сообщения
Тип '{текст: строка; } 'нельзя назначить типу' {text: string; цвет: строка; fontStyle: string; sidePadding: номер; }».
Свойство 'color' отсутствует в типе '{text: string; }».
Не могу понять, почему? Я использую машинопись> 2.8 и документацию TS, это не очень понятно. Может ли кто-нибудь помочь мне разрешить и понять мои ошибки?