我有以下代码:
let item = object[] | object;
if (a === true) {
item = [];
// would like to do something like item: object[] = []
(item as object[]).push(...);
else if (b === true) {
item = {};
// would like to do something like item: object = {}
(item as any).prop = ...
}
// do stuff with item
我的问题是因为item
可能是一个对象或对象列表,所以我必须对item
进行转换才能使用它。有没有办法在初始化时声明对象的类型,这样就不需要进行转换了?
仅想澄清一下,我确实希望item
具有类型,但我希望在定义后指定类型。
item
将会是什么(看起来你无法控制),那么你可能需要使用any
的灵活性。 - nick