我一直在使用React和TypeScript一年。而使我像React一样的事情是,使用TypeScript时,React中的几乎所有东西都可以是类型安全的。
Angular 2,虽然它是用于使用TypeScript但它仍然需要使用"魔术字符串"里面的模板。这让我很失望。
示例(使用React):
class ClickMeComponent extends React.Component<{}, {clickMessage: string}> {
state = {
clickMessage = ""
}
onClickMe = () => {
this.setState({clickMessage: "You are my hero!"});
}
render() {
<button onClick={onClickMe}>Click me!</button>
{this.state.clickMessage }
}
}
示例(使用Angular 2):
@Component({
selector: 'click-me',
template: `
<button (click)="onClickMe()">Click me!</button>
{{clickMessage}}`
})
export class ClickMeComponent {
clickMessage = '';
onClickMe() {
this.clickMessage = 'You are my hero!';
}
}
React的模板完全是类型安全的,但Angular的模板正在使用string&#34; onClickMe()&#34;
为什么Angular团队无法以某种方式设计它以从TypeScript获得类型安全?特别是当他们创建Angular 2时首先使用TypeScript?