目前,我正在将我的项目从angular2 beta15更新为rc4。当我编译时,我收到一个错误:
path/node_modules/@angular/common/src/directives/ng_class.d.ts(81,35):错误TS2304:找不到姓名'设置'。
我的tsconfig.json如下所示:
{
"compilerOptions": {
"target": "ES5",
"module": "commonjs",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"removeComments": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": false,
"declaration": true,
"outDir": "tmp/app"
},
"exclude": [
"node_modules",
"dist",
"tmp"
]
}
在main.ts中我也包括:
/// <reference path="../typings/index.d.ts" />
/// <reference path="../typings/tsd.d.ts"/>
和typings.json:
{
"name": "my-project",
"dependencies": {},
"globalDependencies": {
"core-js": "registry:dt/core-js#0.0.0+20160602141332",
"jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
"node": "registry:dt/node#6.0.0+20160621231320",
"moment": "registry:dt/moment#2.8.0+20160316155526",
"moment-node": "registry:dt/moment-node#2.11.1+20160329220348",
"es6-shim": "registry:dt/es6-shim#0.31.2+20160317120654"
}
}
当我改变&#34; target&#34;:&#34; ES5&#34;到&#34; ES6&#34;在tsconfig.json中,但我需要使用ES5。我认为当我不包含///<reference path="../../node_modules/angular2/typings/browser.d.ts"/>
时会出现问题但是,根据https://github.com/typings/typings/issues/151,我们可以使用typings/index.d.ts
代替<table style="width: 600px; border-collapse: collapse; background-color: #000;" cellspacing="0" cellpadding="0">
<tr>
<td style="width:200px; border-collapse: inherit;" cellspacing="0" cellpadding="0" align="center"><img src="http://static.beeline.kz/pics/VIP/bundle.png"></td>
<td style="width:200px; border-collapse: inherit;" cellspacing="0" cellpadding="0" align="center"><img src="http://static.beeline.kz/pics/VIP/call.png"></td>
<td style="width:200px; border-collapse: inherit;" cellspacing="0" cellpadding="0" align="center"><img src="http://static.beeline.kz/pics/VIP/delivery.png"></td>
</tr>
<tr>
<td style="width:200px; border-collapse: collapse;" cellspacing="0" cellpadding="0"><div style="font-size:12px; font-family: Arial,Helvetica, Sans-serif; font-weight: bold; line-height: 25px; color: #ffffff; text-align: center; padding: 20px 0px 20px 0px;">Большие пакеты минут<br>и Интернет трафика,<br>для звонков по Казахстану<br>и в роуминге</div></td>
<td style="width:200px; border-collapse: collapse;" cellspacing="0" cellpadding="0"><div style="font-size:12px; font-family: Arial,Helvetica, Sans-serif; font-weight: bold; line-height: 25px; color: #ffffff; text-align: center; padding: 20px 0px 20px 0px;">Приоритет в Call-center,<br>Офисах продаж<br>и обслуживани</div></td>
<td style="width:200px; border-collapse: collapse;" cellspacing="0" cellpadding="0"><div style="font-size:12px; font-family: Arial,Helvetica, Sans-serif; font-weight: bold; line-height: 25px; color: #ffffff; text-align: center; padding: 20px 0px 20px 0px;">Доставка купленного<br>номера в любую<br>точку Казахстана</div></td>
</tr>
</table>
。
请您分享您的意见以解决此问题?非常感谢你提前。
答案 0 :(得分:2)
我认为Set
是由ES6的polyfill提供的。 Angular2建议使用core-js(参见https://angular.io/guide/quickstart):
我们从core-js的ES2015 / ES6垫片开始,它使用ES2015(ES6)的基本功能修补全局背景(窗口)
您可以在typings.json文件中指定它,但需要使用命令typings install
安装打字。
答案 1 :(得分:2)
我在尝试运行演示应用程序时遇到此错误。与您的经历类似,如果我将目标更改为&#34; es6&#34;在我的tsconfig.json中,我没有任何问题。运行Angular 2 Quick Start应用程序后,我开始比较tsconfig.json文件中的差异。它归结为我在tsconfig.json文件中缺少的一行:
"lib": ["es2015", "dom"]
将一行添加到我的tsconfig.json文件后,它修复了错误。这是我在Angular Typescript Configuration文档中找到的关于该行的内容:
<强> lib.d.ts 强>
TypeScript包含一个名为lib.d.ts的特殊声明文件。这个 file包含各种常见JavaScript的环境声明 JavaScript运行时和DOM中存在的构造。
基于--target,TypeScript添加了额外的环境声明 像Promise,如果我们的目标是es6。
由于QuickStart的目标是es5,我们可以覆盖列表 要包含的声明文件:
&#34; lib&#34;:[&#34; es2015&#34;,&#34; dom&#34;]
多亏了这一点,即使针对es5,我们也拥有所有es6类型。
https://angular.io/docs/ts/latest/guide/typescript-configuration.html