수색…


비고

함수에 대한 Typescript 문서 링크

선택적 및 기본 매개 변수

선택적 매개 변수

TypeScript에서는 모든 매개 변수가 함수에서 필요하다고 가정합니다. 당신은 ? 매개 변수 이름 끝에 옵션으로 설정하십시오.

예를 lastName 함수의 lastName 매개 변수는 선택 사항입니다.

function buildName(firstName: string, lastName?: string) {
    // ...
}

선택적 매개 변수는 모든 비 선택적 매개 변수 뒤에 와야합니다.

function buildName(firstName?: string, lastName: string) // Invalid

기본 매개 변수

사용자가 undefined 전달하거나 인수를 지정하지 않으면 기본값이 지정됩니다. 이를 기본 초기화 매개 변수라고합니다.

예를 들어, "Smith"는 lastName 매개 변수의 기본값입니다.

function buildName(firstName: string, lastName = "Smith") {
    // ...
}
buildName('foo', 'bar');      // firstName == 'foo', lastName == 'bar'
buildName('foo');             // firstName == 'foo', lastName == 'Smith'
buildName('foo', undefined);  // firstName == 'foo', lastName == 'Smith'

함수 유형

명명 된 함수

function multiply(a, b) {
    return a * b;
}

익명 함수

let multiply = function(a, b) { return a * b; };

람다 / 화살표 함수

let multiply = (a, b) => { return a * b; };

매개 변수로서의 기능

함수를 매개 변수로 받기를 원한다고 가정하면 다음과 같이 할 수 있습니다.

function foo(otherFunc: Function): void {
    ...
}

매개 변수로 생성자를 받기를 원한다면 :

function foo(constructorFunc: { new() }) {
    new constructorFunc();
}

function foo(constructorWithParamsFunc: { new(num: number) }) {
    new constructorWithParamsFunc(1);
}

또는 읽기 쉽게하기 위해 생성자를 설명하는 인터페이스를 정의 할 수 있습니다.

interface IConstructor {
    new();
}

function foo(contructorFunc: IConstructor) { 
    new constructorFunc();
}

또는 매개 변수 사용 :

interface INumberConstructor {
    new(num: number);
}

function foo(contructorFunc: INumberConstructor) {
    new contructorFunc(1);
}

제네릭으로도 :

interface ITConstructor<T, U> {
    new(item: T): U;
}

function foo<T, U>(contructorFunc: ITConstructor<T, U>, item: T): U {
    return new contructorFunc(item);
}

생성자가 아닌 단순한 함수를 받기를 원한다면 거의 동일합니다.

function foo(func: { (): void }) {
    func();
}

function foo(constructorWithParamsFunc: { (num: number): void }) {
    new constructorWithParamsFunc(1);
}

또는 읽기 쉽게하기 위해 함수를 설명하는 인터페이스를 정의 할 수 있습니다.

interface IFunction {
    (): void;
}

function foo(func: IFunction ) { 
    func();
}

또는 매개 변수 사용 :

interface INumberFunction {
    (num: number): string;
}

function foo(func: INumberFunction ) {
    func(1);
}

제네릭으로도 :

interface ITFunc<T, U> {
    (item: T): U;
}

function foo<T, U>(contructorFunc: ITFunc<T, U>, item: T): U {
    return func(item);
}

Union 유형을 사용하는 함수

TypeScript 함수는 공용체 유형을 사용하여 미리 정의 된 여러 유형의 매개 변수를 가져올 수 있습니다.

function whatTime(hour:number|string, minute:number|string):string{
    return hour+':'+minute;
}

whatTime(1,30)         //'1:30'
whatTime('1',30)       //'1:30'
whatTime(1,'30')       //'1:30'
whatTime('1','30')     //'1:30'

Typescript는 이러한 매개 변수를 다른 형식의 유니온 인 단일 형식으로 취급하므로 함수가 유니온에있는 모든 형식의 매개 변수를 처리 할 수 ​​있어야합니다.

function addTen(start:number|string):number{
    if(typeof number === 'string'){
        return parseInt(number)+10;
    }else{
        else return number+10;
    }
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow