각진 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
'programing' 카테고리의 다른 글
Python에서 "ImportError: No module name..." 오류를 해결하는 방법은 무엇입니까? (0) | 2023.07.23 |
---|---|
perl - 데이터베이스에서 여러 요청을 보냅니다. (0) | 2023.07.23 |
rm' 대신 'gitrm'을 사용하여 파일을 제거하는 이유는 무엇입니까? (0) | 2023.07.18 |
루비 온 레일즈에서 현재 절대 URL을 얻으려면 어떻게 해야 합니까? (0) | 2023.07.18 |
git-upload-pack: 명령을 찾을 수 없음, 원격 Gitrepo 복제 시 (0) | 2023.07.18 |