typescript優點 - typescript教學




TypeScript是否允許輸入別名? (2)

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";
    }
}

所以我希望我可以使用一個看起來像這樣的醜陋類型的別名:

core.Maybe<core.Promise<info.Paged<info.Carrier>, core.Problem>>[]

就像是:

import Pew = core.Maybe<core.Promise<info.Paged<info.Carrier>, core.Problem>>[];

有沒有辦法在TypeScript中鍵入別名?


從版本1.4開始,Typescript支持類型別名( blogs.msdn.com/b/typescript/archive/2014/11/18/… )。

鍵入別名

您現在可以使用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