효과적인 TypeScript 읽기 및 정리(Dan Vanderkam 저)
요약
어떤 것보다 정확한 모델링을 위해 어느() / {(키: 문자열): 모두} / () => 모두 예를 들어 특정 형식을 사용해야 합니다.
아무거나
JavaScript로 표현할 수 있는 모든 값을 포괄하는 매우 광범위한 유형.
– 원시 값
– 정규 표현식
– 수업
– DOM 요소 등 포함
어떤 종류의 값도 정규 표현식이나 함수에 직접 삽입하지 마십시오.
– 아래 코드에서 배열이 아닌 경우를 필터링하기 위해 any 대신 any()를 사용할 수 있습니다.
function getLengthBad(array: any) { // Don't do this!
return array.length;
}
function getLength(array: any()) { // 차라리 이렇게
return array.length;
}
getLengthBad(/123/); // 에러 탐지 불가
getLength(/123/);
// ~~~~~ Argument of type 'RegExp' is not assignable
// to parameter of type 'any()'
요소의 종류와 상관없이 2차원 배열에 아무거나 사용하고 싶다면 어느()() 방법을 설명하다
오브젝트에 있는 값의 타입을 모르는 경우 {(키: 문자열): 모두} 방법을 설명하다
function getLengthBad(array: any) { // Don't do this!
return array.length;
}
function getLength(array: any()) {
return array.length;
}
function hasTwelveLetterKey(o: {(key: string): any}) {
for (const key in o) {
if (key.length === 12) {
return true;
}
}
return false;
}
– 물체사용할 수 있지만 속성에 액세스할 수 없기 때문에 내부적으로 오류가 발생합니다.
(사용하지 않는 것이 좋음)
function getLengthBad(array: any) { // Don't do this!
return array.length;
}
function getLength(array: any()) {
return array.length;
}
function hasTwelveLetterKey(o: object) {
for (const key in o) {
if (key.length === 12) {
console.log(key, o(key));
// ~~~~~~ Element implicitly has an 'any' type
// because type '{}' has no index signature
return true;
}
}
return false;
}
IN 기능을 사용하는 3가지 방법
function getLengthBad(array: any) { // Don't do this!
return array.length;
}
function getLength(array: any()) {
return array.length;
}
type Fn0 = () => any; // 매개변수 없이 호출 가능한 모든 함수
type Fn1 = (arg: any) => any; // 매개변수 1개
type FnN = (...args: any()) => any; // 여러 매개변수
// Function 타입과 동일
type FnN = (…args: any()) => any; ~에
…args: any와 같이 할 수 있지만 위와 같이 배열로 선언하면 더 구체적입니다.