angular - 如何处理特别“长”的接口?
问题描述
给定以下接口,假设有 10 个或更多属性
export interface EmployeeFilter {
name: string;
gender: string;
age: number;
from: Date;
to: Date;
module: string;
position: string;
phone: string;
email: string;
country: string;
}
EmployeeFilter
有没有办法在不显式设置属性的情况下使用签名初始化对象?
目前我必须手动初始化属性:
const searchby: EmployeeFilter = {
name: '',
gender: '',
age: 28,
from: null,
to: null,
module: '',
position: '',
phone: '',
email: '',
country: ''
}
所以我正在寻找一种方法,EmployeeFilter
通过将其设置为自动初始化所有属性null
。我尝试了一些想法,例如:
const searchby: EmployeeFilter = new class implements EmployeeFilter{}();
但是,例如,console.log(searchby);
我得到的只是一个空对象字面量{}
。
解决方案
接口只存在于类型系统中,TypeScript 类型永远不会影响发出的 JavaScript。
因此,仅基于接口是完全不可能的。
但是,您可以用类替换接口。
推荐阅读
- feathersjs - Feathers auth 登录无效
- c - 通过 HTTP 请求将文件上传到 Google Drive (C)
- php - 为什么成功交易后paypal沙箱金额没有变化?
- database-migration - Camunda 为数据库创建脚本使用单独的用户
- php - 按类别对数据库中的数据进行分组
- java - 如何为包的所有类中的所有方法替换 catch 块中的现有代码?
- scala - 如何在 Scala 中的类型擦除泛型接口上表达类型边界?
- c# - 控制事件在 DataContext 更新后多次工作
- azure - Azure 门户狐狸必应广告沙盒 api
- kotlin - 无法解析 androidx 上的参考 Recyclerview.adapter