在使用VIEW_PRODUCT类型调用fooBar
函数时,TypeScrip编译器没有为配置参数提供准确的建议.虽然当提供了不正确的密钥时,它会正确地检测错误,但它无法强制只存在FooFn
接口中定义的一个密钥.在这种情况下,我能得到正确的建议吗?
interface Window {
fooBar: FooFn
}
interface FooFn {
(method: 'event', type: 'view_product', config: { view_product_key: any }): void
(method: 'event', type: 'update_cart', config: { update_cart_key: any }): void
}
window.fooBar('event', 'view_product', {}) // TypeScript incorrectly allows passing an object with more than one key
window.fooBar('event', 'view_product', { update_cart_key: 1 }) // TypeScript correctly flags an error for an incorrect key
window.fooBar('event', 'view_product', { view_product_key: 1 }) // TypeScript correctly allows a valid object with the right key