我刚开始学习TypeScript,遇到了这个问题。
我有两个代码片段,在第一个代码片段中有一个对象name
,在另一个代码片段(与第一个代码片段相同)中,变量名更改为user
。
现在的问题是第一个代码片段会出现错误,但第二个却可以正常工作。
第一个代码片段(产生错误)
interface Person {
firstName : string;
lastName : string;
}
function greeter(person: Person) {
return "Hello " + person.firstName + " " + person.lastName;
}
var name = {firstName: "Girdhari", lastName: "Agrawal"};
document.body.innerHTML = greeter(name);
第二段代码(正常工作)
interface Person {
firstName : string;
lastName : string;
}
function greeter(person: Person) {
return "Hello " + person.firstName + " " + person.lastName;
}
var user = {firstName: "Girdhari", lastName: "Agrawal"};
document.body.innerHTML = greeter(user);
请帮助我理解这个。 编辑
This is what I am getting while compiling first script
greeter.ts(10,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'name' must be of type 'string', but here has type '{ firstname: string; lastName: string; }'.
greeter.ts(13,35): error TS2345: Argument of type 'string' is not assignable to parameter of type 'Person'.
name
作为一个字符串。 - Igor