У меня есть такой код
interface MyInterface {
name: string;
}
type MyType = string | MyInterface;
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
constructor() {
console.log(this.getValueAsString('Hello World'));
console.log(this.getValueAsString({name: 'Hello World'}));
}
// I want to return 'Hello World' for both possible types
getValueAsString(myValue: MyType): string {
// not working because compiler says name is no property of string
// return myValue.name ? myValue.name : myValue;
}
}
Проблема в том, что при каждом попытке я пытался, чтобы компилятор всегда появлялся, потому что что-то не подходит ни для одного из типов.
Какое будет лучшее решение для getValueAsString
?
(стек-блиц: https://stackblitz.com/edit/angular-jrty3q)