javascript - 如何组合两个接口并使其所有字段可选?
问题描述
我有两个无法修改的接口:
interface Person {
name: string;
age: number;
}
interface User {
username: string;
password: string;
}
我想将它们组合成一个:Player
// please, modify this code accordingly
interface Player extends Person, User {
device: string
}
wherename
和age
是可选的。
所以,如果我这样做:
const member: Player = {
username: 'bill.gates',
password: 'M1cRoS0ft',
device: 'PSP',
}
然后我没有收到错误,因为:name
并且age
丢失了。
在这里你有操场。
谢谢!
解决方案
您可以使用本机实用程序类型Partial<T>
来构造一个接口,其中它的属性是可选的,然后从它扩展。
这将给出以下代码:
interface Person {
name: string;
age: number;
}
interface User {
username: string;
password: string;
}
interface Player extends Partial<Person>, User {
device: string;
}
const member: Player = {
username: 'bill.gates',
password: 'M1cRoS0ft',
device: 'PSP',
}
推荐阅读
- c++ - C++ 将 unsigned char 数组转换为字符串表示形式的 long(或 long long)
- reactjs - React DirectLine 聊天不起作用。找不到源文件
- hazelcast - Hazelcast Mancenter 启用/禁用快照
- spring - 为什么应用程序/json获取请求上的Spring解码+(加号)?我该怎么办?
- c# - 带有 API 密钥的广告系列监控帖子
- android - 为什么我的字段在注入后是“空”?如何注入我的对象?
- unix - 如何替换文本文件中每出现一次的单词
- android - Android @SuppressWarnings 在语句级别,而不是方法级别
- angular - 离子日期时间绑定到纪元
- ios - 从 iPhone 触发 Apple Watch 应用程序启动