举例

    这些例子是按复杂度递增的顺序组织的。

    例子

    文档

    代码

    声明

    使用declare var声明变量。 如果变量是只读的,那么可以使用declare const。 你还可以使用declare let如果变量拥有块级作用域。

    1. /** 组件总数 */
    2. declare var foo: number;

    全局函数

    文档

    用一个字符串参数调用greet函数向用户显示一条欢迎信息。

    代码

    1. greet("hello, world");

    声明

    使用declare function声明函数。

    1. declare function greet(greeting: string): void;

    文档

    代码

    1. let result = myLib.makeGreeting("hello, world");
    2. console.log("The computed greeting is:" + result);
    3. let count = myLib.numberOfGreetings;

    使用declare namespace描述用点表示法访问的类型或值。

    函数重载

    文档

    getWidget函数接收一个数字,返回一个组件,或接收一个字符串并返回一个组件数组。

    代码

    1. let x: Widget = getWidget(43);
    2. let arr: Widget[] = getWidget("all of them");

    声明

    1. declare function getWidget(n: number): Widget;
    2. declare function getWidget(s: string): Widget[];

    文档

    代码

    1. greet({
    2. duration: 4000
    3. });

    声明

    使用interface定义一个带有属性的类型。

    1. interface GreetingSettings {
    2. greeting: string;
    3. duration?: number;
    4. color?: string;
    5. }
    6. declare function greet(setting: GreetingSettings): void;

    可重用类型(类型别名)

    文档

    代码

    声明

    你可以使用类型别名来定义类型的短名:

    1. type GreetingLike = string | (() => string) | MyGreeter;
    2. declare function greet(g: GreetingLike): void;

    文档

    代码

    1. const g = new Greeter("Hello");
    2. g.log({ verbose: true });
    3. g.alert({ modal: false, title: "Current Greeting" });

    声明

    使用命名空间组织类型。

    1. declare namespace GreetingLib {
    2. verbose?: boolean;
    3. interface AlertOptions {
    4. modal: boolean;
    5. title?: string;
    6. color?: string;
    7. }
    8. }

    你也可以在一个声明中创建嵌套的命名空间:

    1. declare namespace GreetingLib.Options {
    2. // Refer to via GreetingLib.Options.Log
    3. interface Log {
    4. verbose?: boolean;
    5. }
    6. interface Alert {
    7. modal: boolean;
    8. title?: string;
    9. color?: string;
    10. }
    11. }

    文档

    你可以通过实例化Greeter对象来创建欢迎词,或者继承Greeter对象来自定义欢迎词。

    代码

    声明

    使用declare class描述一个类或像类一样的对象。 类可以有属性和方法,就和构造函数一样。

    1. declare class Greeter {
    2. constructor(greeting: string);
    3. greeting: string;
    4. showGreeting(): void;