我刚从github克隆angular2-seed项目并按照步骤操作,但我在VS代码中收到了此警告 [ts]对装饰器的实验性支持是一个在将来的版本中可能会发生变化的功能。 设置' Exxperimentaldecorators'删除此警告的选项。
答案 0 :(得分:12)
转到vscode中的文件/首选项/用户设置,输入此代码
{
"typescript.tsdk": "node_modules/typescript/lib"
}
答案 1 :(得分:6)
在我创建的新服务上使用@Injectable()时遇到了这个问题。 我从VS Code的打字稿编译器那里收到了警告。
当我将新服务作为提供者添加到我打算使用它的模块时,警告消失了。
希望这可以解决您的问题。
答案 2 :(得分:6)
答案 3 :(得分:3)
在tsconfig.json
文件中,将项目的路径添加到include
属性中,如下所示:
"include": [
"app/**/*"
]
或者您可以将单个文件添加到files
属性。以下是我tsconfig.json
的示例(对于Angular2应用程序):
{
"compileOnSave": false,
"buildOnSave": false,
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"noEmitHelpers": true,
"sourceMap": true,
"types": [
"node"
],
"typeRoots": [
"../node_modules/@types"
],
"lib": [
"es2015",
"dom"
]
},
"files": [
"app/main.ts",
"app/app.module.ts"
],
"include": [
"app/**/*.ts"
],
"exclude": [
"node_modules",
"dist",
"build",
"app/main.aot.ts"
]
}
答案 4 :(得分:1)
你的tsconfig.json应该是这样的:
{
"compilerOptions": {
"experimentalDecorators": true
},
"files": [], //add a "files" array (in my case empty)
"exclude": [
"node_modules"
]
}
或者,您可以在VSCode首选项(用户设置)中添加一行
"javascript.implicitProjectConfig.experimentalDecorators": true
答案 5 :(得分:1)
在VS Code设置中找到“ experimentalDecorators”。这将列出Extension->具有属性JavaScript的TypeScript->隐式项目配置->实验装饰器启用此设置将解决警告
答案 6 :(得分:1)
在VS Code中,打开"javascript.implicitProjectConfig.experimentalDecorators": true
并添加以下行:
<?php
include 'pdo_connect.php';
$product_id = $_GET['product'];
$stmt = $db->prepare("SELECT * FROM products Where id = :id");
$stmt->bindParam(':id', $product_id );
$stmt->execute();
while($row = $stmt->fetch()){
$stock = $row['stock'];
$id = $row['ID'];
if ($stock > 0){
echo
"<script>
paypal.Buttons({
style: {
shape: 'rect',
color: 'blue',
layout: 'vertical',
label: 'paypal',
locale: 'en_CY'
},
createOrder: async function(data, actions) {
let stock = (await fetch('get_current_stock.php')).json();
let currentStock = stock['current'];
//may use amoutTryingToOrder instead of 1
if (currentStock < 1) {
alert('Out of stock, sorry :(');
return false;
}
return actions.order.create({
purchase_units: [{
amount: {
value: ". $row['paypal_price'] .",
currency: 'EUR'
}
}]
});
},
onApprove: function(data, actions) {
return actions.order.capture().then(function(details) {
//alert('Transaction completed by ' + details.payer.name.given_name + '!');
alert('Your payment has been processed!');
localStorage.clear();
window.location.href = 'http://localhost/website/thankyou.php';
const formData = new FormData();
formData.append('amountOrdred', 1);
fetch('update_stock.php', {
method: 'POST',
body: formData
});
})
}
}).render('#paypal-button-container');
</script>";
}
else{
echo "Out of stock";
}
}
?>
答案 7 :(得分:0)
这是由于使用旧版本的打字稿。您必须升级您的打字稿版本才能删除此消息。
npm install -g typescript@latest
此外,您还需要将npm升级到最新版本。
答案 8 :(得分:0)
我在 VS Code 中关于新添加的类收到此警告。项目编译没有任何错误。当我开始通过 import
引用新添加的类时,警告会出现。
在这种情况下,无需更改 VS Code 或 Typescript 中的配置。