2017-03-10 12 views

답변

1

이 가장 쉽게 함수 호출하기 전에 객체를 정의하여 수행 할 수 있습니다 :

function foo(bar: { baz: number }) : number { 
    return bar.baz; 
} 

foo({ baz: 1, other: 2 }); 

는하지만이 결과 예, 당신이 할 수있는

function foo(bar: { baz: number }) : number { 
    return bar.baz; 
} 

const obj = { baz: 1, other: 2 }; 

foo(obj); 
2

. 이 시도 : 난 내 자신의 질문에 대답 싫어, 잘

interface IBaz { 
    baz: number; 
    [key: string]: any; 
} 

function foo(bar: IBaz) : number { 
    return bar.baz; 
} 

foo({ baz: 1, other: 2 }); 
+1

내가 처음이 생각했지만, 인라인 원 .. . (그리고 어떤 이유로 나는 대괄호 대신 괄호를 사용하여 [key : string] 부분을 망쳤다.) ... – Lucas

1

,하지만 다른 답변이 조금 생각을 영감을 ...이 작품 :

function foo<T extends { baz: number }>(bar: T): void { 
    console.log(bar.baz); 
} 

foo({baz: 1, other: 2});