Finns det ett sätt att ignorera typinkompatibilitet i TypeScript?


Jag har tittat på att använda TypeScript med Mongoose för MongoDB. Mestadels har det fungerat bra, men med vissa typer av förutsättningar får jag varningar från TypeScript-kompilatorn.

Om jag gör ett eller så här:

{"$or": [{done: {"$exists": false}}, {done:false}]} 

Jag får följande varning:

Incompatible types in array literal expression: Types of property 'done' of types '{ done: { $exists: bool; }; }' and '{ done: bool; }' are incompatible.

Jag förstår varför, men finns det ett sätt att uttrycka detta så att kompilatorn kommer att acceptera det?

Svar #1

Du kan göra typkontroll på något av elementen till any för att "stänga av" typkontrollen:

[<any>{done: {"$exists": false}}, {done:false}]

Eller, om du initialiserar en variabel, kan du göra något som detta:

var n: any[] = [{done: {"$exists": false}}, {done:false}]

Relaterade artiklar