从开始教程中检查TypeScript接口类型

时间:2015-04-24 19:13:16

标签: interface typescript

我刚刚开始学习TypeScript,而且我很难在http://www.typescriptlang.org/Playground/#tut=ex5

的开始教程中绕过界面行为。

据我所知,接口应该强制执行参数的类型,但是这条特定的行会让我失望

var user = new Student("Jane", "M.", "User");

它正确编译并且一切正常,但当我将其修改为

var user = new Student(1, 2, 3);

它也编译得很好。

有人能详细说明它为什么有效吗?

我知道这是一个初学者问题,但我在网上找不到任何有关此搜索的信息,而且我周围没有任何TypeScript专家。

提前致谢, 尤金

1 个答案:

答案 0 :(得分:1)

Student构造函数参数的类型为any,因为没有类型注释:

class Student {
    fullname : string;
    constructor(public firstname, public middleinitial, public lastname) {
        this.fullname = firstname + " " + middleinitial + " " + lastname;
    }
}

如果我们将其更改为包含某些类型注释,我们会收到错误:

class Student {
    fullname : string;
    constructor(public firstname: string, // <-- add ': string' here
                public middleinitial: string, // and here
                public lastname: string) { // and here
        this.fullname = firstname + " " + middleinitial + " " + lastname;
    }
}

var x = new Student(1, 2, 3); // Error