例如,假设我有一个定义布尔值和可选字符串的接口:
示例
interface IError {
error: [boolean, string?];
}
现在稍后在代码中我要使用它:
if (somethingTrue) {
error: [false]
} else {
error: [true, "Error occurred because of foo"]
}
我已经开始工作了。但是,我想为接口添加更多上下文。布尔值应命名为errorOccured
,字符串应命名为message
。
尝试
我在考虑以下问题:
interface IError {
error: [errorOccured: boolean, message: string?];
}
可能是我想念的明显东西,但我只是不明白。
答案 0 :(得分:2)
TypeScript中有an existing feature request个命名元组,但是当前不支持它们。
同时,您可以使用未命名的元组,也可以使用对象:
interface IError {
errorOccurred: boolean;
message?: string;
}
取决于您的用例的另一种选择可能是根据根本没有错误对象还是有errorOccurred
来隐含message
。
答案 1 :(得分:1)
使用您的接口名称,我可以直接将属性放入其中:
interface IError {
errorOccurred: boolean;
message?: string;
}
并且您的对象error
的类型应为IError
。
对于该接口的实现,您可以分别设置两个参数...