javascript - 联合类型中的 Typescript null 不起作用
问题描述
interface Address {
a: string
}
interface End {
state: {
addrList: null | (Address[]);
};
}
class End {
state = {
addrList: [{
a: '1'
}],
};
}
Error: Subsequent property declarations must have the same type.
Property 'state' must be of type '{ addrList: Address[] | null; }', but here has type '{ addrList: { a: string; }[]; }'.
然后我得到了这个。
那么,我错过了什么吗?
在线演示
解决方案
您忘记实现接口,这就是您的 End 类不知道应该分配给addrList的原因。接口也应该在名称之前有 I (这只是模式),这样你就可以避免名称冲突。
看一下这个
interface IAddress {
a: string
}
interface IEnd {
state: {
addrList: (IAddress[] | null);
};
}
class End implements IEnd {
state = {
addrList: [{
a: '1'
}],
};
}
推荐阅读
- javascript - AJAX 调用以检索 JSON - 如何将结果格式化为屏幕
- elasticsearch - Elasticsearch NGram Analyzer - 更改查询结果的顺序
- python - 在 pygame 中使用不同的字体书写
- xml - XML 文件到 XBRL 文件
- java - Vert.x SQLConnection:“路由中出现意外异常”,“等待 30000(毫秒)回复后超时”
- swift - 无法读取数据(用于文本字段)
- ocaml - 从 stdin :: OCaml 读取格式化的输入测试用例
- python - 为什么我的 Ubuntu 在启动 python 脚本后会死机?
- php - 是否可以让用户定位沿途的所有店铺?
- visual-studio-code - 在 if/else 上使用 mssing 时如何更漂亮地添加大括号