举例

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

    文档

    代码

    声明

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

    1. declare namespace myLib {
    2. function makeGreeting(s: string): string;
    3. let numberOfGreetings: number;
    4. }

    函数重载

    文档

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

    代码

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

    声明

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

    文档

    代码

    1. greet({
    2. greeting: 'hello world',
    3. duration: 4000,
    4. });

    声明

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

    可重用类型(类型别名)

    文档

    在任何需要祝福词的地方,你可以提供一个string,一个返回string的函数或一个Greeter实例。

    代码

    1. function getGreeting() {
    2. return 'howdy';
    3. }
    4. greet('hello');
    5. greet(getGreeting);
    6. greet(new MyGreeter());

    声明

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

    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. interface LogOptions {
    3. verbose?: boolean;
    4. }
    5. modal: boolean;
    6. title?: string;
    7. color?: string;
    8. }
    9. }

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

    你可以通过实例化Greeter对象来创建祝福语,或者继承Greeter对象来自定义祝福语。

    代码

    1. myGreeter.greeting = 'howdy';
    2. myGreeter.showGreeting();
    3. class SpecialGreeter extends Greeter {
    4. constructor() {
    5. super('Very special greetings');
    6. }
    7. }

    声明

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

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

    文档

    代码

    1. console.log('Half the number of widgets is ' + foo / 2);

    声明

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

    1. /** The number of widgets present */
    2. declare var foo: number;

    全局函数

    文档

    你可以使用一个字符串参数来调用greet函数,并向用户显示一条祝福语。

    代码

    声明

    使用declare function来声明函数。