のプロパティ「LONG_NAME」を読み取ることができない私は自分のコードの下TypeScript official documentation.に示すようNon-null assertion operator
を使用しようとしました:活字体:ヌル
let streetNumberComponent = this.getAddressComponent(addressComponents, 'street_number');
address.streetNumber = streetNumberComponent!.long_name();
...
public getAddressComponent(addressComponents: Array<any>, type: string): any {
addressComponents.filter(component => {
let types : Array<string> = component.types;
if(_.includes(types, type)) {
return component;
}
});
return null;
}
私はプロパティlong_name()
がstreetNumberComponent
がnull
ない場合にのみアクセスされることを期待しました。しかし、それはそうではないですし、私が取得:次のコードは正常に動作することを
TypeError: Cannot read property 'long_name' of null
注:
address.streetNumber = streetNumberComponent && streetNumberComponent.long_name();
を私が使用している:
- 活字体:2.0。 10
- 角度:2.3.1
- 角度CLI:1.0.0-beta.24
streetNumberComponent!.long_name(); 'あなたの質問を書くときに感嘆符が誤植ですか? –
これは、TypeScriptの「非nullアサーション演算子」です。 –
ああ、私の悪い、TS hahaであまりそれをしていない。 –