3
私はちょうどタイプスクリプトを開始していましたが、この問題を抱えていました。typecriptの2つのコードの違いは何ですか?
最初のコードにオブジェクト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