그래서 나는 다음과 같은 추악한 유형에 별칭을 사용할 수 있기를 바랍니다.
Maybe<Promise<Paged<Carrier>, Problem>>[]
다음과 같은 것 :
import Response = Maybe<Promise<Paged<Carrier>, Problem>>[];
TypeScript에서 유형 별칭을 수행하는 방법이 있습니까?
답변
버전 1.4부터 Typescript는 유형 별칭 ( source )을 지원합니다 .
유형 별칭
이제 type 키워드를 사용하여 유형의 별칭을 정의 할 수 있습니다.
type PrimitiveArray = Array<string|number|boolean>; type MyNumber = number; type NgScope = ng.IScope; type Callback = () => void;
유형 별칭은 원래 유형과 정확히 동일합니다. 그들은 단순히 대체 이름입니다.
버전 1.6부터 Typescript는 일반 유형 별칭 ( source )을 지원합니다 .
일반 유형 별칭
TypeScript 1.6까지 유형 별칭은 긴 유형 이름을 단축하는 단순한 별칭으로 제한되었습니다. 불행히도 이러한 일반화를 만들 수 없었기 때문에 사용이 제한되었습니다. 이제 유형 별칭을 일반화하여 완전한 표현 기능을 제공합니다.
type switcharoo<T, U> = (u: U, t:T)=>T; var f: switcharoo<number, string>; f("bob", 4);
답변
TypeScript는 다음과 같은 가져 오기를 지원합니다.
module A {
export class c {
d: any;
}
}
module B {
import moduleA = A;
var e: moduleA.c = new moduleA.c();
}
module B2 {
import Ac = A.c;
var e: Ac = new Ac();
}
업데이트 1
TS 1.4부터 우리는 타입 선언을 사용할 수 있습니다 :
type MyHandler = (myArgument: string) => void;
var handler: MyHandler;
TS 1.6부터 우리는 지역 유형 선언을 사용할 수 있습니다.
function f() {
if (true) {
interface T { x: number }
let v: T;
v.x = 5;
}
else {
interface T { x: string }
let v: T;
v.x = "hello";
}
}
답변
가난한 사람의 해결책은 t
원하는 유형 으로 더미 변수 (예 :)를 선언 typeof t
하고 long 유형 표현식 대신 사용하는 것입니다.
var t : {(x : 숫자, f : {(foo : 문자열, bar : boolean) : void}) : void}; var f : typeof t; var g : typeof t;