
type Resource<T extends "sql"> = {foo: string}
function main(res: Resource<"sql">) {
res.foo
}type Resource<T extends "sql" | "s3"> = T extends "sql" ? {foo: string} : {bar: string};
function main(res: Resource<"sql">, res1: Resource<"s3">) {
res.foo;
res1.bar;
}type Res_foo = {...}
def main(x: Res_foo) {...}