インターフェースのプロパティをオプションにして、そのメンバーを他の変数に割り当てる場合は、次のようにします。
interface Person {
name?: string,
age?: string,
gender?: string,
occupation?: string,
}
function getPerson() {
let person = <Person>{name:"John"};
return person;
}
let person: Person = getPerson();
let name1: string = person.name; // <<< Error here
次のようなエラーが発生します。
TS2322: Type 'string | undefined' is not assignable to type 'string'.
Type 'undefined' is not assignable to type 'string'.
このエラーを回避するにはどうすればよいですか?
ベストアンサー1
これで、非 null アサーション演算子それはまさにあなたのユースケースにぴったりです。
これは、何かが null である可能性があるように見えても、null ではないことを TypeScript が信頼できることを伝えます。
let name1:string = person.name!;
// ^ note the exclamation mark here