找到一个Typescript definition file,声明以下是函数输入所需的类型。
settings: Settings & AlertModalSettings
如何声明可用作上述有效输入的类型?
尝试以下操作,它无效
let a: SweetAlert.Settings = {
};
let b: SweetAlert.PromtModalSettings = {
};
swal(a & b);
答案 0 :(得分:1)
settings
的类型为intersection type
变量/函数参数参数必须是Settings & AlertModalSettings
类型,并且必须实现两种类型的所有成员
function swal(a: Settings & AlertModalSettings) {
....
};
答案 1 :(得分:1)
您不想使用a & b
,因为在这种情况下&
是bitwise AND operator,它会对数字起作用。
如果您已有SweetAlert.Settings
个对象和SweetAlert.PromtModalSettings
个对象,则可以将它们与Object.assign()或spread operator for object literals合并:
declare let a: SweetAlert.Settings;
declare let b: SweetAlert.PromtModalSettings;
const abObjectAssign = Object.assign({}, a, b);
swal(abObjectAssign); // okay
const abSpread = { ...a, ...b };
swal(abSpread); // okay
如果您没有对象a
和b
并且想要将对象文字传递给swal()
,那么您只需要给它一个与SweetAlert.Settings
匹配的对象。 {1}}和SweetAlert.PromtModalSettings
:
swal({
title: 'title', // required in Settings
allowOutsideClick: false // optional in PromtModalSettings
}); // okay
希望有所帮助;祝你好运!