Typescript未知类型可以';不能与…一起使用?。操作人员

Typescript未知类型可以';不能与…一起使用?。操作人员,typescript,Typescript,在我的应用程序中,我将设置保存到json文件中。随着应用程序的新版本发布,json文件中会添加更多内容。这意味着应用程序可能会从缺少某些设置的旧版本加载json设置文件 加载Json文件后,我将其内容存储在声明为未知类型的变量(loadedUserPreferenceData)中 我想这样做: const width = loadedUserPreferenceData?.ui?.windowSize?.x ?? CONSTANTS.sizes.rendererWindow.defaultSi

在我的应用程序中,我将设置保存到json文件中。随着应用程序的新版本发布,json文件中会添加更多内容。这意味着应用程序可能会从缺少某些设置的旧版本加载json设置文件

加载Json文件后,我将其内容存储在声明为未知类型的变量(loadedUserPreferenceData)中

我想这样做:

const width  = loadedUserPreferenceData?.ui?.windowSize?.x ?? CONSTANTS.sizes.rendererWindow.defaultSize.x;
const width  = ( loadedUserPreferenceData as any )?.ui?.windowSize?.x ?? CONSTANTS.sizes.rendererWindow.defaultSize.x;
但我得到一个错误,因为loadedUserPreferenceData类型未知。我可以通过将变量强制转换为以下任意变量来解决此问题:

const width  = loadedUserPreferenceData?.ui?.windowSize?.x ?? CONSTANTS.sizes.rendererWindow.defaultSize.x;
const width  = ( loadedUserPreferenceData as any )?.ui?.windowSize?.x ?? CONSTANTS.sizes.rendererWindow.defaultSize.x;

有没有更好/更干净的方法来处理这个问题?我很惊讶这个?。运算符不能用于未知类型。

可能创建一个与json配置匹配的接口我有一个定义json文件“当前”版本应包含的内容的接口,但我没有一个定义json文件可能包含的所有以前“可能”旧版本的接口。不确定什么是支持仍然需要加载的json文件的旧版本的好方法。可能创建一个与json配置匹配的接口我有一个定义json文件的“当前”版本应包含的内容的接口,但我没有一个定义所有先前“可能”的接口json文件可能包含的旧版本。不确定什么是支持仍然需要加载的json文件的旧版本的好方法。