Реагируйте и Google Автозаполнение с Typescript - PullRequest
1 голос
/ 03 мая 2020

У меня есть автозаполнение адреса Google и форма реагирования- bootstrap, и я не могу настроить соответствие типов для ref.

class ProfileForm extends React.Component<PropsFromRedux, ProfileFormState> {
    private myRef = React.createRef<FormControl<any>>();
    private autocomplete?: google.maps.places.Autocomplete;
    ...

}

Элемент управления моей формы выглядит следующим образом:

<Form.Control ref={this.myRef} type="text" placeholder="Enter address"
              defaultValue={this.props.userProfile.location!.formatted_address}
/>

Вот как я создаю автозаполнение:

function forceCast<T>(input: any): T {
    // @ts-ignore <-- forces TS compiler to compile this as-is
    return input;
}


//@ts-ignore
    this.autocomplete = new google.maps.places.Autocomplete(
        forceCast<HTMLInputElement>(this.myRef.current),
        options);

Мой вопрос:

Как мне это сделать без принудительного приведения?

Автозаполнение Google хочет HTMLInputElement (я пробовал множество других типов и прочего), но лучшее, что я могу получить с реакцией - bootstrap это FormControl (я не могу понять, как "привести" это к чему-либо другому, чем показано на рисунке).

...