如何解决将数组转换为接口数组
在 Angular 12 应用程序上,我有以下环境:
export const environment = {
production: false,applications: [
{ name: "Api",url: "https://localhost:5001" },{ name: "Bot",url: "https://localhost:5003"}
],}
然后我创建了一个 Application
接口和 EnvironmentService
类:
export interface Application {
name: string;
url: string;
}
export class EnvironmentService {
constructor() {}
get production() : boolean { return environment.production; }
get applications() : Application[] { return environment.applications };
}
但我收到一个错误:
Type '{ name: string; url: string; }[]' is not assignable to type 'Application[]'.
如何将 environment.applications
转换为 Application[]
?
解决方法
就我个人而言,我还通过界面描述了我的环境常量。这样我就可以确保不同环境的常量将遵循相同的结构。
所以我会这样写:
export interface Application {
name: string;
url: string;
}
interface Environment {
production: boolean;
applications: Application[];
}
export const environment: Environment = {
production: false,applications: [
{ name: "Api",url: "https://localhost:5001" },{ name: "Bot",url: "https://localhost:5003"}
],}
export class EnvironmentService {
constructor() {}
get production() : boolean { return environment.production; }
get applications() : Application[] { return environment.applications };
}
通过硬输入并且没有隐含的“任何”,IDE 可以为您提供所需的所有帮助。 省略类型的工作量较少,在极少数情况下,代码可能更具可读性,但也更容易出错。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。