programing

각진 js에 사용된 것과 같은 매개 변수로 명명된 유형 스크립트?

megabox 2023. 7. 18. 21:39
반응형

각진 js에 사용된 것과 같은 매개 변수로 명명된 유형 스크립트?

저는 TypeScript와 Angular(그리고 자바스크립트)를 모두 배우려고 노력하고 있습니다.

Angular 튜토리얼을 살펴보니 다음과 같은 작업을 수행하고 있습니다.

일반 자바스크립트에서:

function CreateCtrl($scope, $location, Project){
// do stuff
}

전체 예는 Angular 홈페이지의 "Wire up a backend" project.js 예제를 참조하십시오.

키커는 이러한 매개변수가 임의의 순서(또는 전혀 없을 수 있음)일 수 있다는 것입니다.Project는 실제로 사용자 정의 변수/유형입니다.Angular 프레임워크는 매개 변수를 실제 개체에 매핑할 수 있습니다.

이제 Typescript에서 이러한 유형의 기능을 재생성하려면 어떻게 해야 합니까?저는 Angular의 행동을 어떤 식으로든 설명하고 싶습니다. Typescript(이 유연한 속성 주입 유형)로 마무리하겠습니다.

Angular가 있습니다.TypeScript의 Angular를 사용할 수 있는 Definite Type의 JS 유형 정의.

만약 내가 이와 같은 기존 함수에 대한 정의를 만들고 있다면(이름이 붙은 인수가 없는 경우), 아마도 특정 순서로 정의하거나(일반 자바스크립트에서 다양한 순서로 전달될 수 있다는 것을 알고 있음에도), 다음과 같이 내가 노출하고 싶은 가능성과 일치하는 함수 오버로드 집합을 만들 것입니다.

interface Example {
    ($scope: bool, $location: string, Project: number): void;
    ($location: string, $scope: bool, Project: number): void;
    (Project: number, $scope: bool, $location: string): void;
}

declare var example: Example;

내가 전화하려고 할 때example(나는 세 가지 옵션에 대한 지식을 얻고, 만약 내가 이 조합들 중 하나를 사용하지 않는다면 컴파일러 경고를 받습니다.

자바스크립트에서 명명된 인수는 일반적으로 객체와 함께 생성되므로, 만약 내가 이런 방식으로 인수를 받아들일 수 있는 새로운 방법을 쓰고 있다면, 나는 이렇게 할 것입니다.

interface ExampleArguments {
    scope: bool;
    location: string;
    project: number;
}

var example = function (exampleArguments: ExampleArguments) {

};

example({ scope: true, project: 4, location: 'hi' });

정적으로 입력되고 TypeScript에서 확인됩니다.

언급URL : https://stackoverflow.com/questions/42693275/typescript-named-arguments

반응형