我为 Deno POC 编写了几个 api。
这是路线代码:
const router = new Router()
router.get('/posts', getPosts)
.get('/posts/:id', getPostsById)
Run Code Online (Sandbox Code Playgroud)
对于第二条路线,我可以使用关键字:params 在控制器中获取路径参数:getPostsById。这是控制器代码:
export const getPostsById = (
{ params, response }: { params:any, response: any }) => {
console.log(params, '||| params')}
Run Code Online (Sandbox Code Playgroud)
如何以类似的方式获取查询参数(例如:/posts/2222?userId=3)
我使用 Oak 进行路由。我尝试了 Oak 代码库中的各种关键字:查询、搜索等,但没有成功。
我也尝试了 Oak 文档中的 getQuery,但我完全无法导入它。
我试图理解打字稿中的提升。提升是否在 Typescript 中进行,如果是,与 Javascript 中的提升方式相比有什么不同吗?
例如:即使我在使用它的函数之后声明了接口,代码也可以很好地转换。可以安全地假设它的发生是由于作为转译的一部分的提升而发生的,或者这里还涉及其他东西。
getCarDetails({name: 'Xyz', topSpeed: 300})
function getCarDetails(carDetails: CarDetails) {
console.log(carDetails.name);
console.log(carDetails.topSpeed);
}
interface CarDetails {
name: string;
topSpeed: number;
}
Run Code Online (Sandbox Code Playgroud) 函数借用是从对象中借用函数而不是重新定义它;但我为什么要这么做。我们可以有一个通用函数,对象可以进一步使用它们。更准确地说;当我可以像代码#2 那样编写代码时,我什么时候会使用代码#1:
代码#1
let car1 = {
speed: 80,
getSpeed: function () {
return this.speed;
},
};
let car2 = {
speed: 60,
};
console.log(car1.getSpeed());
console.log(car1.getSpeed.call(car2));
Run Code Online (Sandbox Code Playgroud)
代码#2
function getSpeed() {
return this.speed;
}
let car1 = {
speed: 80,
}
let car2 = {
speed: 60,
}
console.log(getSpeed.call(car1));
console.log(getSpeed.call(car2));
Run Code Online (Sandbox Code Playgroud)