Typescript: 型 'string | undefined' は型 'string' に代入できません 質問する

Typescript: 型 'string | undefined' は型 'string' に代入できません 質問する

インターフェースのプロパティをオプションにして、そのメンバーを他の変数に割り当てる場合は、次のようにします。

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  

おすすめ記事