As a decorator:
interface Record {}
@Complexity("n")
function getRecord(userId: number): Record {
return db.getRecords().findWhere({userId}) // Error! Expected O(n) complexity, found O(log(n)) complexity
}
Or, as a type:
interface Record {}
function getRecord(userId: number) in n2: Record {
return db.getRecords().findWhere({userId}) // Error! Expected O(n) complexity, found O(log(n)) complexity
}
@Budget(2ms)
function invert<T>(object: {[key: string]: T}): {[key: string]: string} {
const result = {}
for (let key of object) {
result[object[key]] = key
}
return result
}