From 4318147fc6352c887f81615788258021a4fcf8a9 Mon Sep 17 00:00:00 2001 From: Kylin <75473409+lxKylin@users.noreply.github.com> Date: Tue, 4 Jun 2024 23:24:44 +0800 Subject: [PATCH] refactor(input): remove unnecessary assertions and use?? instead of the ternary operator (#7571) * refactor: remove unnecessary assertions and use?? instead of the ternary operator * refactor: use?? instead of the ternary operator --- components/input-number/index.tsx | 2 +- components/input/Password.tsx | 2 +- components/input/TextArea.tsx | 18 +++++++++--------- components/input/calculateNodeHeight.tsx | 7 +++---- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/components/input-number/index.tsx b/components/input-number/index.tsx index 7b1b4418a..a2c7ad99b 100644 --- a/components/input-number/index.tsx +++ b/components/input-number/index.tsx @@ -72,7 +72,7 @@ const InputNumber = defineComponent({ const mergedSize = computed(() => compactSize.value || size.value); - const mergedValue = shallowRef(props.value === undefined ? props.defaultValue : props.value); + const mergedValue = shallowRef(props.value ?? props.defaultValue); const focused = shallowRef(false); watch( () => props.value, diff --git a/components/input/Password.tsx b/components/input/Password.tsx index 0d65270b4..a516c0a84 100644 --- a/components/input/Password.tsx +++ b/components/input/Password.tsx @@ -59,7 +59,7 @@ export default defineComponent({ }); const getIcon = (prefixCls: string) => { const { action, iconRender = slots.iconRender || defaultIconRender } = props; - const iconTrigger = ActionMap[action!] || ''; + const iconTrigger = ActionMap[action] || ''; const icon = iconRender(visible.value); const iconProps = { [iconTrigger]: onVisibleChange, diff --git a/components/input/TextArea.tsx b/components/input/TextArea.tsx index 09c4a80d2..bfe0544cf 100644 --- a/components/input/TextArea.tsx +++ b/components/input/TextArea.tsx @@ -38,10 +38,10 @@ function setTriggerValue( let newTriggerValue = triggerValue; if (isCursorInEnd) { // 光标在尾部,直接截断 - newTriggerValue = fixEmojiLength(triggerValue, maxLength!); + newTriggerValue = fixEmojiLength(triggerValue, maxLength); } else if ( [...(preValue || '')].length < triggerValue.length && - [...(triggerValue || '')].length > maxLength! + [...(triggerValue || '')].length > maxLength ) { // 光标在中间,如果最后的值超过最大值,则采用原先的值 newTriggerValue = preValue; @@ -58,7 +58,7 @@ export default defineComponent({ const formItemContext = useInjectFormItemContext(); const formItemInputContext = FormItemInputContext.useInject(); const mergedStatus = computed(() => getMergedStatus(formItemInputContext.status, props.status)); - const stateValue = shallowRef(props.value === undefined ? props.defaultValue : props.value); + const stateValue = shallowRef(props.value ?? props.defaultValue); const resizableTextArea = shallowRef(); const mergedValue = shallowRef(''); const { prefixCls, size, direction } = useConfigInject('input', props); @@ -79,7 +79,7 @@ export default defineComponent({ const onInternalCompositionStart = (e: CompositionEvent) => { compositing.value = true; // 拼音输入前保存一份旧值 - oldCompositionValueRef.value = mergedValue.value as string; + oldCompositionValueRef.value = mergedValue.value; // 保存旧的光标位置 oldSelectionStartRef.value = (e.currentTarget as any).selectionStart; emit('compositionstart', e); @@ -94,7 +94,7 @@ export default defineComponent({ oldSelectionStartRef.value === oldCompositionValueRef.value?.length; triggerValue = setTriggerValue( isCursorInEnd, - oldCompositionValueRef.value as string, + oldCompositionValueRef.value, triggerValue, props.maxlength, ); @@ -177,14 +177,14 @@ export default defineComponent({ // 1. 复制粘贴超过maxlength的情况 2.未超过maxlength的情况 const target = e.target as any; const isCursorInEnd = - target.selectionStart >= props.maxlength! + 1 || + target.selectionStart >= props.maxlength + 1 || target.selectionStart === triggerValue.length || !target.selectionStart; triggerValue = setTriggerValue( isCursorInEnd, - mergedValue.value as string, + mergedValue.value, triggerValue, - props.maxlength!, + props.maxlength, ); } resolveOnChange(e.currentTarget as any, e, triggerChange, triggerValue); @@ -237,7 +237,7 @@ export default defineComponent({ }); watchEffect(() => { - let val = fixControlledValue(stateValue.value) as string; + let val = fixControlledValue(stateValue.value); if ( !compositing.value && hasMaxLength.value && diff --git a/components/input/calculateNodeHeight.tsx b/components/input/calculateNodeHeight.tsx index 03ce2a984..509f7308b 100644 --- a/components/input/calculateNodeHeight.tsx +++ b/components/input/calculateNodeHeight.tsx @@ -48,9 +48,8 @@ const computedStyleCache: Record = {}; let hiddenTextarea: HTMLTextAreaElement; export function calculateNodeStyling(node: HTMLElement, useCache = false) { - const nodeRef = (node.getAttribute('id') || - node.getAttribute('data-reactid') || - node.getAttribute('name')) as string; + const nodeRef = + node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name'); if (useCache && computedStyleCache[nodeRef]) { return computedStyleCache[nodeRef]; @@ -103,7 +102,7 @@ export default function calculateAutoSizeStyle( // Fix wrap="off" issue // https://github.com/ant-design/ant-design/issues/6577 if (uiTextNode.getAttribute('wrap')) { - hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap') as string); + hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap')); } else { hiddenTextarea.removeAttribute('wrap'); }