Open
Description
I want to define a Foo type in codeql, which has its own attributes and types, which is convenient for subsequent type analysis
For example, I want to find the intAdd function, the wrong call to pass the parameter is not a number
// some function will return "Foo"
function getFoo() {
return {
id: 123,
name: "foo",
data: { xxx: "xxx" },
};
}
function createFoo() {
return {
id: 123,
name: "foo",
data: { xxx: "xxx" },
};
}
function getFoos() {
return [
{
id: 123,
name: "foo",
data: { xxx: "xxx" },
},
{
id: 123,
name: "foo",
data: { xxx: "xxx" },
},
];
}
// use the Foo
let a = {};
let f1 = getFoo();
let fs = getFoos();
intAdd(123); // good
intAdd(f1.id); // good
intAdd(f1.name); // bad
intAdd(f1.data); // bad
fs.forEach((f) =>{
intAdd(f.name); // bad
});