gpt4 book ai didi

javascript - Angularjs + Typescript,如何将 $routeParams 与 IRouteParamsService 一起使用

转载 作者:可可西里 更新时间:2023-11-01 02:16:21 25 4
gpt4 key购买 nike

我正在使用 $routeParams 从 URI 中提取属性并为它们设置本地变量。

当我使用 typescripts 键入设置 $routeParams 的类型时,我无法登录访问 $routeParams。

如何访问 $routeParams 中的属性?

class Controller{
constructor($routeParams: ng.route.IRouteParamsService, private $location: ng.ILocationService)
this.propetry1 = this.getProperty1($routeParams.property1);
}

property1: string;

getProperty1(input: string):string{
return (input || "Not present");
}

ng.route.IRouteParamsService 代码是:

interface IRouteParamsService {
[key: string]: any;
}

这有一个错误:属性“property1 在 ng.route.IRouteParamsService 类型上不存在”

如果我将 $routeParams 的类型更改为 :any,那么它会正确设置 property1。如何在访问 $routeParams 中的属性的同时保持 Typescript 的严格类型?

最佳答案

想通了。您需要声明一个使用 IRouteParamsService 的接口(interface)并指定您要使用的属性。

 interface IRouteParams extends ng.route.IRouteParamsService {
property1:string;
}

class Controller{
constructor($routeParams: IRouteParams, private $location: ng.ILocationService)
this.propetry1 = this.getProperty1($routeParams.property1);
}

property1: string;

getProperty1(input: string):string{
return (input || "Not present");
}
}

注意 Controller 构造函数的变化。

关于javascript - Angularjs + Typescript,如何将 $routeParams 与 IRouteParamsService 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24315893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com