我有一个带参数的函数。此参数必须是两种接口之一。所以我这样写:
add(item: IntDroga | IntSolucion){
if(item && item.identificacion){
if(item.estado.habilitada.value == false || item.estado.estado == estadoAprobacion.Aprobado){
// some code
}
}
}
但我收到了以下错误。
Property 'habilitada' does not exist on type '{ estado: string; habilitada: { value: boolean; viewValue: string; }; excluida: boolean; } | { estado: estadoAprobacion; fecha: Date; usuario: string; }'.
Property 'habilitada' does not exist on type '{ estado: estadoAprobacion; fecha: Date; usuario: string; }'.ts(2339)
以下是接口:
因特拉加:
export interface IntDroga {
_id: string;
identificacion: {
nombre: string,
codigo: string,
marca: string,
grupoSustancias: string,
nProducto: string,
lote: string,
CAS: string,
codigoAlternativo: string,
estandarInterno: boolean
};
informacion: {
pureza: number,
humedad: number,
fecha: {
fabricacion: Date,
recepcion: Date,
vencimientoCertificado: Date,
vencimientoAsignada: Date,
},
presentacion: string,
solucion?: { concentracion: number, unidad: string},
cantidad: {
recibida: {valor: number, unidad: string},
remanente: {valor: number, unidad: string},
unidad: string,
},
concentracion?: {valor: number, unidad: string},
DLDC: {
libre: {value: boolean, viewValue: string},
masaDL: number,
masaDC: number,
fDLDC: number,
};
sectores: string [];
rubros: string [];
ubicacion: string;
observaciones: string;
};
estado: {
estado: string,
habilitada: {value: boolean, viewValue: string},
excluida: boolean
};
}
内溶:
export interface IntSolucion {
_id: string,
identificacion: {
nombre: string,
codigo: string,
},
informacion:{
tipo: string,
componentes: Componente [] ,
fecha:{
preparacion: Date,
vencimiento: Date,
descarte: Date
},
material:{
matraz: {
codigo: string,
volumen: {value: number, unidad: string}
}
},
temperaturaPreparacion: string,
almacenamiento: string
analista: string,
solvente: {tipo: string, identificacion: string}
},
estado?: {estado:estadoAprobacion, fecha: Date, usuario: string};
};
我不知道有什么问题。假设函数的参数可以有两种不同的结构。我不知道为什么Tslink会标记它。
提前感谢您的帮助。
它似乎IntSolucion没有属性“estado”对象上的“康复”。也许,你可以改成这样:
add(item: IntDroga | IntSolucion){
if(item && item.identificacion){
if(((item instaceof IntDroga) && item.estado.habilitada.value == false) || item.estado.estado == estadoAprobacion.Aprobado) {
// some code
}
}
}
另一种方法是在以下条件下执行某些类型的操作:
if (item instanceof IntDroga) {
// do the stuff assuming an IntDrog instance
} else {
// do the stuff assuming an IntSolucion instance
}
我正在处理打字稿,并将一个函数传递给另一个函数。 如果我有一个传递到typescript中另一个函数的函数,我应该如何编写类型? 我尝试了,但似乎不起作用。
问题是: 创建一个名为Duo的泛型类,它有两个参数a和B。声明一个名为a类型的第一个变量,以及一个名为B类型的第二个变量。创建一个接受这两个参数的构造函数。在构造函数中,将这些参数分别分配给声明的变量。 这是我能想到的解决方案: 然后,当我继续问下一个问题时,我被绊住了。问题是: 使用问题4中的Duo类声明并创建两个对象,如下所示: a) 第一个名为sideShape的对象分别由字符串类型和整数类
我在TypeScript中遇到了module.d.ts中的导出声明: "const扩展"类型是一个对象吗?为什么它会返回空而不是指定的类型?
假设我有以下类型: 我现在想扩展这个类型,即。 这行不通。我该怎么做?
如何设置文本颜色,我将使用setForebackground(color c),但如果我使用它,图像不会被打乱。 有可能使它与JLabel一起工作吗?在修改单元格的线程中设置所需的Jlabel(带有图像或文本),只需设置Valueat(label,row,column);