기본적으로 개체 인수에 필요한 모든 속성이 포함되어 있지만 원하는 다른 속성을 포함 할 수 있습니다. 예를 들어 :typescript에서 알려지지 않은 속성을 허용하는 객체 리터럴 유형을 선언 할 수 있습니까?
Object literal may only specify known properties, and 'other' does not exist in type '{ baz: number; }'.
기본적으로 개체 인수에 필요한 모든 속성이 포함되어 있지만 원하는 다른 속성을 포함 할 수 있습니다. 예를 들어 :typescript에서 알려지지 않은 속성을 허용하는 객체 리터럴 유형을 선언 할 수 있습니까?
Object literal may only specify known properties, and 'other' does not exist in type '{ baz: number; }'.
이 가장 쉽게 함수 호출하기 전에 객체를 정의하여 수행 할 수 있습니다 :
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);
. 이 시도 : 난 내 자신의 질문에 대답 싫어, 잘
interface IBaz {
baz: number;
[key: string]: any;
}
function foo(bar: IBaz) : number {
return bar.baz;
}
foo({ baz: 1, other: 2 });
,하지만 다른 답변이 조금 생각을 영감을 ...이 작품 :
function foo<T extends { baz: number }>(bar: T): void {
console.log(bar.baz);
}
foo({baz: 1, other: 2});
내가 처음이 생각했지만, 인라인 원 .. . (그리고 어떤 이유로 나는 대괄호 대신 괄호를 사용하여 [key : string] 부분을 망쳤다.) ... – Lucas