类型注解
类似于 function setString(name:String),如果在传入参数时非字符串类型,编译时会报错。
接口
typejs有接口并且不需实现,只需要在传入时符合接口的要求结构即可。
interface Person{
firstName:string;
lastName:string;
}
function greeter(person:Person){
return "Hello, " + person.firstName + " " + person.lastName;
}
let user = {firstName : "Jane",lastName:"User"};
document.body.innerHTML = greeter(user);
注意,类和接口可以一起工作,程序员可以自行决定抽象级别。
还要注意的是,在构造函数的参数上使用public等同于创建了同名的成员变量
class Student {
fullName:string;
constructor(public firstName,public middleInitial,public lastName){
this.fullName = firstName + " " + middleInitial + " " + lastName;
}
}
interface Person{
firstName:string;
lastName:string;
}
function greeter(person: Person){
return "Hello, "+ person.firstName + "" + person.lastName;
}
let user = new Student("Jane","M.","User");
document.body.innerHTML = greeter(user);