![](/img/trans.png)
[英]React Typescript boolean props typed as optional with default value set to 'false'
[英]How to set Record in Typescript for string and boolean value
全部。
我在 React 中有一個 Formik 字段,需要將字段的值設置為字符串或 boolean
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,
});
使用上面的代碼,我必須轉換最后兩個值,因為它們是 boolean 值,我嘗試了幾種方法,包括編寫自定義類型,但它似乎以一種或另一種方式出錯
不要誤會我的意思,它確實是這樣工作的,但我覺得有一種更好的方法,無需將 unknown 類型轉換為 boolean。
誰能告訴我如何設置記錄類型,這樣我就不需要投射它了?
謝謝!
Record<string, string| boolean>
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.