Angular5.1新功能分享(2)

要构建你的Universal应用,只需要运行以下命令:

ng build --app=<name>

App Shell

额外添加的功能是对App Shell的支持。现在你可以生成和构建一个应用shell,它使用Universal来为你的应用构建一个静态的首次渲染在你的index.html页面中。当你的应用程序正在启动时,这会给用户更好的体验。

首先,确保在你的应用中的NgModule中有一个RouterModule的模块被导入,以及有一个<router-outlet></router-outlet>在你应用组件的模块中。App Shell使用路由来渲染你的应用。

运行以下命令:

ng generate app-shell [ --universal-app <universal-app-name>] [ --route <route>]

通过传递app-shell参数,将对主应用程序的all shell的支持添加到你的angular-cli.json文件中。如果Universal应用没有通过,则第一次运行Universal Schematic的时候会创建一个Universal应用。路由参数指定了在生成应用期间生成的路由配置。(App Shell需要有路由的支持)。默认是/shell。

完成这一步之后,只需要使用ng build就可以正常构建应用程序,index.html文件将包含自动渲染的路由。

改进的装饰器错误信息

由编译器产生的诊断已经得到了明显的改善,特别是当装饰器包含不支持或不正确的表达式的时候。

例如:调用一个函数来处理模板是不支持的。

@Component({
 template: genTemplate()
})

这是以前会产生的错误:

Error encountered resolving symbol values statically. Calling function ‘genTemplate', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol MyComponent in components.ts, resolving symbol MyComponent in components.ts

这个错误已经得到改善,并澄清了问题的来源和性质。

component.ts(9,16): Error during template compile of 'MyComponent'.
 Function calls are not supported in decorators but 'genTemplate' was called.

支持TypeScript 2.5

我们已经添加了TypeScript 2.5的支持,这是所有的开发人员推荐的。这个TypeScript版本包含了几个有用的高级功能。

你可以升级你的Typescript通过yarn add typescript@'~2.5.3'或者npm install typescript@'~2.5.3'。

这个更新是可选的,TypeScript 2.4继续支持Angular 5.X我们还不支持TypeScript 2.6。我们的计划实在未来的次版本中添加支持。

<stong>重要提示:</stong>如果你的代码使用injector.get(Token),Token有静态成员,那么你将遇到TypeScript的问题,返回的类型是{}而不是Token。你可以使用Injector.get<Token>(Token)来获得争取的返回值。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/433.html