В Nativescript 5.x (TypeScript) я успешно использовал следующий код для назначения модели представления контексту привязки RadSideDrawer:
import * as app from "@nativescript/core/application";
import { EventData } from "@nativescript/core/data/observable";
import { RadSideDrawer } from "nativescript-ui-sidedrawer";
export function drawerLoaded(args: EventData) {
let sideDrawer = <RadSideDrawer>args.object; <-- compiler error 1
sideDrawer.bindingContext = new MyViewModel();
}
Затем я обновился до Nativescript 6.4, TypeScript 2.9.2, RadSideDrawer 8.0.0, а затем перенесли мое приложение с помощью «tns migrate».
После всех этих обновлений я получил ошибку компилятора 1:
TS2352: преобразование типа 'View' в тип RadSideDrawer может быть ошибкой, поскольку ни один тип не совпадает с другим. Если это было сделано намеренно, сначала преобразуйте выражение в «неизвестное».
ТАК пользователь Manoj помог мне решить эту проблему (еще раз спасибо!). Мой текущий код теперь выглядит так:
export function drawerLoaded(args: EventData) {
let sideDrawer : RadSideDrawer = <RadSideDrawer>(<any>args.object);
sideDrawer.bindingContext = new MyViewModel(); <-- compiler error 2
}
Теперь я получил ошибку компилятора 2.
Свойство 'bindingContext' не существует для типа 'RadSideDrawer'.ts (2339)
Внезапно RadSideDrawer больше не имеет связывающего контекста? Даже в официальной документации больше не упоминается свойство BindingContext. Что здесь произошло?
![enter image description here](https://i.stack.imgur.com/XIHne.png)