将数组转换为接口数组
Convert Array to Interface Array
在 Angular 12 应用程序上,我有以下环境:
export const environment = {
production: false,
applications: [
{ name: "Api", url: "https://localhost:5001" },
{ name: "Bot", url: "https://localhost:5003"}
],
}
然后我创建了一个 Application
接口和 EnvironmentService
class:
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 };
}
通过硬输入并且没有隐含的“any”,IDE 可以为您提供所需的所有帮助。
省略类型的工作更少,并且在极少数情况下代码可能更具可读性,但也更容易出错。
在 Angular 12 应用程序上,我有以下环境:
export const environment = {
production: false,
applications: [
{ name: "Api", url: "https://localhost:5001" },
{ name: "Bot", url: "https://localhost:5003"}
],
}
然后我创建了一个 Application
接口和 EnvironmentService
class:
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 };
}
通过硬输入并且没有隐含的“any”,IDE 可以为您提供所需的所有帮助。 省略类型的工作更少,并且在极少数情况下代码可能更具可读性,但也更容易出错。