3
타이프 스크립트를 시작한 직후에이 문제에 봉착했습니다.타이프 코드의 두 코드의 차이점은 무엇입니까?
두 코드가 있습니다. 첫 번째 코드에는 객체 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