function getLengthBad(array: any) { // Don't do this!
return array.length;
}
function getLength(array: any[]) {
return array.length;
}
===
getLengthBad(/123/); // No error, returns undefined
getLength(/123/);
// ~~~~~ Argument of type 'RegExp' is not assignable
// to parameter of type 'any[]'
===
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;
}
any 대신 any[]를 쓰면?
함수의 타입에도 단순히 any보단 구체적으로
type Fn0 = () => any; // 매개변수 없이 호출가능한 모든함수
type Fn1 = (arg: any) => any; // 매개변수 하나
type FnN = (...args: any[]) => any; //모든 개수의 매개변수, Function 타입과 같음
===
const numArgsBad = (...args ; any) => args.length // any를 반환
const numArgsGood = (...args : any[]) => args.length // number를 반환