全部。
我在 React 中有一個 Formik 欄位,需要將欄位的值設定為字串或布林值
const handleSubmit = async (values: Record<string, string>) => {
const checkoutDetails = await getCheckout({ checkoutId: checkoutId });
if (checkoutDetails.errors) {
setSubmitError(true);
return;
}
const email = checkoutDetails.data.checkoutById.customer?.email;
const customer = await addCustomer({
firstName: values.firstName,
lastName: values.lastName,
checkoutId: checkoutId as string,
customerId: null,
email: email,
ochId: null,
emailMarketingConsent: values.emailMarketing as unknown as boolean,
smsMarketingConsent: values.smsMarketing as unknown as boolean,
});
使用上面的代碼,我必須轉換最后兩個值,因為它們是布林值,我嘗試了幾種方法,包括撰寫自定義型別,但它似乎以一種或另一種方式出錯
不要誤會我的意思,它確實像這樣作業,但我覺得有一種更好的方法,無需將未知型別轉換為布林值。
誰能告訴我如何設定記錄型別,這樣我就不需要轉換它了?
謝謝!
uj5u.com熱心網友回復:
Record<string, string| boolean>可能是一種方式,但您仍然需要型別斷言。
或者你可以做一個交叉路口:
type Foo = Record<string, string> & {emailMarketing: boolean, smsMarketing: boolean}
declare const foo:Foo;
foo.firstName // string
foo.emailMarketing // boolean;
foo.smsMarketing // boolean;
操場
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/513151.html
標籤:反应打字稿记录
上一篇:如何對唯一鍵值進行排序和操作
