alias - Apakah TypeScript mengizinkan alias tipe?
Jadi saya berharap saya bisa menggunakan alias untuk tipe jelek yang terlihat seperti ini:
Maybe<Promise<Paged<Carrier>, Problem>>[]
Sesuatu seperti:
import Response = Maybe<Promise<Paged<Carrier>, Problem>>[];
Apakah ada cara untuk membuat alias tipe di TypeScript?
Jawaban #1
Mulai versi 1.4 Typescript mendukung alias tipe (sumber).
Alias Tipe
Anda sekarang dapat mendefinisikan alias untuk sebuah tipe menggunakan kata kunci tipe:
type PrimitiveArray = Array<string|number|boolean>; type MyNumber = number; type NgScope = ng.IScope; type Callback = () => void;Alias tipe sama persis dengan tipe aslinya; mereka hanyalah nama alternatif.
Dan mulai versi 1.6 Typescript mendukung alias tipe generik (sumber).
Alias tipe generik
Menuju TypeScript 1.6, alias tipe dibatasi hanya sebagai alias sederhana yang mempersingkat nama tipe yang panjang. Sayangnya, tanpa kemampuan untuk membuat ini bersifat generik, penggunaannya terbatas. Sekarang kami memungkinkan alias tipe untuk bersifat generik, memberi mereka kemampuan ekspresif penuh.
type switcharoo<T, U> = (u: U, t:T)=>T; var f: switcharoo<number, string>; f("bob", 4);
Jawaban #2
TypeScript mendukung impor, misalnya:
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();
}
Pembaruan 1
Sejak TS 1.4 kita dapat menggunakan deklarasi tipe:
type MyHandler = (myArgument: string) => void;
var handler: MyHandler;
Sejak TS 1.6 kita bisa menggunakan deklarasi tipe lokal:
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";
}
}
