TypeScript에서 조건에 따라 타입 함수를 정의하는 출력 방법
P粉764836448
2023-08-14 18:18:08
<p>내 함수의 출력 유형을 정의하려고 하는데 <code>string</code> 사이에 <code>toNumberIfNeeded</code> 플래그를 사용하고 싶습니다. /code> 유형 <code>toNumberIfNeeded</code>가 true인 경우 이 함수는 숫자 유형을 반환하고, 그렇지 않으면 문자열 유형을 반환한다고 가정하여 사이에 조건을 설정합니다. 어떻게 해야 하나요? </p>
<pre class="brush:php;toolbar:false;">인터페이스 옵션 {
대문자?: 부울;
filterSpecialChars?: 부울;
toNumberIfNeeded?: 부울;
}
const textTransformer = (텍스트: 문자열, 옵션?: 옵션) =>
const { 대문자, filterSpecialChars, toNumberIfNeeded} = 옵션 {};
//내 처리 논리 코드
return toNumberIfNeeded ?parseInt(text) : 텍스트;
}</pre>
<p>예상되는 예:</p>
<pre class="brush:php;toolbar:false;">textTransformer('hello') // 문자열 유형을 반환합니다.
textTransformer('123', { toNumberIfNeeded: true }) // 숫자 유형을 반환합니다</pre>
리팩터링할 수 있습니다
으아악textTransformer()
方法,接受一个泛型参数,并使用条件类型来检查toNumberIfNeeded
是否为true
或false
。我认为 TypeScript 无法自动缩小返回值的类型。你必须使用类型断言,否则返回类型将被推断为string | number
.